LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH v2 1/6 linux-next] FS/AFFS: use unsigned int for string lengths
@ 2015-02-05 19:05 Fabian Frederick
  2015-02-05 19:05 ` [PATCH v2 2/6 linux-next] define AFFSNAMEMAX to replace constant use Fabian Frederick
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Fabian Frederick @ 2015-02-05 19:05 UTC (permalink / raw)
  To: linux-kernel; +Cc: Fabian Frederick, Andrew Morton

-Some min() were used with different types.
-Create a new variable in __affs_hash_dentry()
 to process affs_check_name()/min() return

Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Fabian Frederick <fabf@skynet.be>
---
v2:
   min() variables uniformization
   (suggested by Andrew Morton)

 fs/affs/amigaffs.c |  2 +-
 fs/affs/namei.c    | 15 ++++++++-------
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/fs/affs/amigaffs.c b/fs/affs/amigaffs.c
index 511ab6b..0836f6f 100644
--- a/fs/affs/amigaffs.c
+++ b/fs/affs/amigaffs.c
@@ -508,7 +508,7 @@ affs_check_name(const unsigned char *name, int len, bool notruncate)
 int
 affs_copy_name(unsigned char *bstr, struct dentry *dentry)
 {
-	int len = min(dentry->d_name.len, 30u);
+	u32 len = min(dentry->d_name.len, 30u);
 
 	*bstr++ = len;
 	memcpy(bstr, dentry->d_name.name, len);
diff --git a/fs/affs/namei.c b/fs/affs/namei.c
index de84f4d..66c6cb3 100644
--- a/fs/affs/namei.c
+++ b/fs/affs/namei.c
@@ -64,15 +64,16 @@ __affs_hash_dentry(struct qstr *qstr, toupper_t toupper, bool notruncate)
 {
 	const u8 *name = qstr->name;
 	unsigned long hash;
-	int i;
+	int retval;
+	u32 len;
 
-	i = affs_check_name(qstr->name, qstr->len, notruncate);
-	if (i)
-		return i;
+	retval = affs_check_name(qstr->name, qstr->len, notruncate);
+	if (retval)
+		return retval;
 
 	hash = init_name_hash();
-	i = min(qstr->len, 30u);
-	for (; i > 0; name++, i--)
+	len = min(qstr->len, 30u);
+	for (; len > 0; name++, len--)
 		hash = partial_name_hash(toupper(*name), hash);
 	qstr->hash = end_name_hash(hash);
 
@@ -173,7 +174,7 @@ int
 affs_hash_name(struct super_block *sb, const u8 *name, unsigned int len)
 {
 	toupper_t toupper = affs_get_toupper(sb);
-	int hash;
+	u32 hash;
 
 	hash = len = min(len, 30u);
 	for (; len > 0; len--)
-- 
2.1.0


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v2 2/6 linux-next] define AFFSNAMEMAX to replace constant use
  2015-02-05 19:05 [PATCH v2 1/6 linux-next] FS/AFFS: use unsigned int for string lengths Fabian Frederick
@ 2015-02-05 19:05 ` Fabian Frederick
  2015-02-05 19:05 ` [PATCH v2 3/6 linux-next] fs/affs/amigaffs.c: remove else after return Fabian Frederick
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Fabian Frederick @ 2015-02-05 19:05 UTC (permalink / raw)
  To: linux-kernel; +Cc: Fabian Frederick, Andrew Morton

30 was used all over the place to compare name length against
AFFS maximum name length.

Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Fabian Frederick <fabf@skynet.be>
---
v2:
   use 30U instead of 30 to solve min() interpretation
   (suggested by Andrew Morton)

 fs/affs/affs.h     |  2 ++
 fs/affs/amigaffs.c |  6 +++---
 fs/affs/dir.c      |  3 ++-
 fs/affs/namei.c    | 16 ++++++++--------
 fs/affs/super.c    |  2 +-
 5 files changed, 16 insertions(+), 13 deletions(-)

diff --git a/fs/affs/affs.h b/fs/affs/affs.h
index ff44ff3..c8764bd 100644
--- a/fs/affs/affs.h
+++ b/fs/affs/affs.h
@@ -30,6 +30,8 @@
 #define AFFS_AC_SIZE		(AFFS_CACHE_SIZE/sizeof(struct affs_ext_key)/2)
 #define AFFS_AC_MASK		(AFFS_AC_SIZE-1)
 
+#define AFFSNAMEMAX 30U
+
 struct affs_ext_key {
 	u32	ext;				/* idx of the extended block */
 	u32	key;				/* block number */
diff --git a/fs/affs/amigaffs.c b/fs/affs/amigaffs.c
index 0836f6f..118d782 100644
--- a/fs/affs/amigaffs.c
+++ b/fs/affs/amigaffs.c
@@ -483,11 +483,11 @@ affs_check_name(const unsigned char *name, int len, bool notruncate)
 {
 	int	 i;
 
-	if (len > 30) {
+	if (len > AFFSNAMEMAX) {
 		if (notruncate)
 			return -ENAMETOOLONG;
 		else
-			len = 30;
+			len = AFFSNAMEMAX;
 	}
 	for (i = 0; i < len; i++) {
 		if (name[i] < ' ' || name[i] == ':'
@@ -508,7 +508,7 @@ affs_check_name(const unsigned char *name, int len, bool notruncate)
 int
 affs_copy_name(unsigned char *bstr, struct dentry *dentry)
 {
-	u32 len = min(dentry->d_name.len, 30u);
+	u32 len = min(dentry->d_name.len, AFFSNAMEMAX);
 
 	*bstr++ = len;
 	memcpy(bstr, dentry->d_name.name, len);
diff --git a/fs/affs/dir.c b/fs/affs/dir.c
index a682892..ac4f318 100644
--- a/fs/affs/dir.c
+++ b/fs/affs/dir.c
@@ -114,7 +114,8 @@ inside:
 				break;
 			}
 
-			namelen = min(AFFS_TAIL(sb, fh_bh)->name[0], (u8)30);
+			namelen = min(AFFS_TAIL(sb, fh_bh)->name[0],
+				      (u8)AFFSNAMEMAX);
 			name = AFFS_TAIL(sb, fh_bh)->name + 1;
 			pr_debug("readdir(): dir_emit(\"%.*s\", ino=%u), hash=%d, f_pos=%llx\n",
 				 namelen, name, ino, hash_pos, ctx->pos);
diff --git a/fs/affs/namei.c b/fs/affs/namei.c
index 66c6cb3..ffb7bd8 100644
--- a/fs/affs/namei.c
+++ b/fs/affs/namei.c
@@ -72,7 +72,7 @@ __affs_hash_dentry(struct qstr *qstr, toupper_t toupper, bool notruncate)
 		return retval;
 
 	hash = init_name_hash();
-	len = min(qstr->len, 30u);
+	len = min(qstr->len, AFFSNAMEMAX);
 	for (; len > 0; name++, len--)
 		hash = partial_name_hash(toupper(*name), hash);
 	qstr->hash = end_name_hash(hash);
@@ -115,10 +115,10 @@ static inline int __affs_compare_dentry(unsigned int len,
 	 * If the names are longer than the allowed 30 chars,
 	 * the excess is ignored, so their length may differ.
 	 */
-	if (len >= 30) {
-		if (name->len < 30)
+	if (len >= AFFSNAMEMAX) {
+		if (name->len < AFFSNAMEMAX)
 			return 1;
-		len = 30;
+		len = AFFSNAMEMAX;
 	} else if (len != name->len)
 		return 1;
 
@@ -157,10 +157,10 @@ affs_match(struct dentry *dentry, const u8 *name2, toupper_t toupper)
 	const u8 *name = dentry->d_name.name;
 	int len = dentry->d_name.len;
 
-	if (len >= 30) {
-		if (*name2 < 30)
+	if (len >= AFFSNAMEMAX) {
+		if (*name2 < AFFSNAMEMAX)
 			return 0;
-		len = 30;
+		len = AFFSNAMEMAX;
 	} else if (len != *name2)
 		return 0;
 
@@ -176,7 +176,7 @@ affs_hash_name(struct super_block *sb, const u8 *name, unsigned int len)
 	toupper_t toupper = affs_get_toupper(sb);
 	u32 hash;
 
-	hash = len = min(len, 30u);
+	hash = len = min(len, AFFSNAMEMAX);
 	for (; len > 0; len--)
 		hash = (hash * 13 + toupper(*name++)) & 0x7ff;
 
diff --git a/fs/affs/super.c b/fs/affs/super.c
index ee8eca7..c3524bf 100644
--- a/fs/affs/super.c
+++ b/fs/affs/super.c
@@ -584,7 +584,7 @@ affs_statfs(struct dentry *dentry, struct kstatfs *buf)
 	buf->f_bavail  = free;
 	buf->f_fsid.val[0] = (u32)id;
 	buf->f_fsid.val[1] = (u32)(id >> 32);
-	buf->f_namelen = 30;
+	buf->f_namelen = AFFSNAMEMAX;
 	return 0;
 }
 
-- 
2.1.0


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v2 3/6 linux-next] fs/affs/amigaffs.c: remove else after return
  2015-02-05 19:05 [PATCH v2 1/6 linux-next] FS/AFFS: use unsigned int for string lengths Fabian Frederick
  2015-02-05 19:05 ` [PATCH v2 2/6 linux-next] define AFFSNAMEMAX to replace constant use Fabian Frederick
@ 2015-02-05 19:05 ` Fabian Frederick
  2015-02-05 19:05 ` [PATCH v2 4/6 linux-next] fs/affs/bitmap.c: remove unnecessary return Fabian Frederick
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Fabian Frederick @ 2015-02-05 19:05 UTC (permalink / raw)
  To: linux-kernel; +Cc: Fabian Frederick, Andrew Morton

else is unnecessary after return -ENAMETOOLONG

Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Fabian Frederick <fabf@skynet.be>
---
 fs/affs/amigaffs.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/fs/affs/amigaffs.c b/fs/affs/amigaffs.c
index 118d782..388da1e 100644
--- a/fs/affs/amigaffs.c
+++ b/fs/affs/amigaffs.c
@@ -486,8 +486,7 @@ affs_check_name(const unsigned char *name, int len, bool notruncate)
 	if (len > AFFSNAMEMAX) {
 		if (notruncate)
 			return -ENAMETOOLONG;
-		else
-			len = AFFSNAMEMAX;
+		len = AFFSNAMEMAX;
 	}
 	for (i = 0; i < len; i++) {
 		if (name[i] < ' ' || name[i] == ':'
-- 
2.1.0


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v2 4/6 linux-next] fs/affs/bitmap.c: remove unnecessary return
  2015-02-05 19:05 [PATCH v2 1/6 linux-next] FS/AFFS: use unsigned int for string lengths Fabian Frederick
  2015-02-05 19:05 ` [PATCH v2 2/6 linux-next] define AFFSNAMEMAX to replace constant use Fabian Frederick
  2015-02-05 19:05 ` [PATCH v2 3/6 linux-next] fs/affs/amigaffs.c: remove else after return Fabian Frederick
@ 2015-02-05 19:05 ` Fabian Frederick
  2015-02-05 19:05 ` [PATCH v2 5/6 linux-next] fs/affs/inode.c: remove double extern affs_symlink_inode_operations Fabian Frederick
  2015-02-05 19:05 ` [PATCH v2 6/6 linux-next] fs/affs/super.c: fix switch indentation Fabian Frederick
  4 siblings, 0 replies; 6+ messages in thread
From: Fabian Frederick @ 2015-02-05 19:05 UTC (permalink / raw)
  To: linux-kernel; +Cc: Fabian Frederick, Andrew Morton

return is not needed at the end of function.

Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Fabian Frederick <fabf@skynet.be>
---
 fs/affs/bitmap.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/fs/affs/bitmap.c b/fs/affs/bitmap.c
index c8de511..6751489 100644
--- a/fs/affs/bitmap.c
+++ b/fs/affs/bitmap.c
@@ -99,7 +99,6 @@ err_bh_read:
 
 err_range:
 	affs_error(sb, "affs_free_block","Block %u outside partition", block);
-	return;
 }
 
 /*
-- 
2.1.0


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v2 5/6 linux-next] fs/affs/inode.c: remove double extern affs_symlink_inode_operations
  2015-02-05 19:05 [PATCH v2 1/6 linux-next] FS/AFFS: use unsigned int for string lengths Fabian Frederick
                   ` (2 preceding siblings ...)
  2015-02-05 19:05 ` [PATCH v2 4/6 linux-next] fs/affs/bitmap.c: remove unnecessary return Fabian Frederick
@ 2015-02-05 19:05 ` Fabian Frederick
  2015-02-05 19:05 ` [PATCH v2 6/6 linux-next] fs/affs/super.c: fix switch indentation Fabian Frederick
  4 siblings, 0 replies; 6+ messages in thread
From: Fabian Frederick @ 2015-02-05 19:05 UTC (permalink / raw)
  To: linux-kernel; +Cc: Fabian Frederick, Andrew Morton

affs_symlink_inode_operations was already declared extern in affs.h

Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Fabian Frederick <fabf@skynet.be>
---
 fs/affs/inode.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/fs/affs/inode.c b/fs/affs/inode.c
index 25cb4b4..6f34510 100644
--- a/fs/affs/inode.c
+++ b/fs/affs/inode.c
@@ -13,8 +13,6 @@
 #include <linux/gfp.h>
 #include "affs.h"
 
-extern const struct inode_operations affs_symlink_inode_operations;
-
 struct inode *affs_iget(struct super_block *sb, unsigned long ino)
 {
 	struct affs_sb_info	*sbi = AFFS_SB(sb);
-- 
2.1.0


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v2 6/6 linux-next] fs/affs/super.c: fix switch indentation
  2015-02-05 19:05 [PATCH v2 1/6 linux-next] FS/AFFS: use unsigned int for string lengths Fabian Frederick
                   ` (3 preceding siblings ...)
  2015-02-05 19:05 ` [PATCH v2 5/6 linux-next] fs/affs/inode.c: remove double extern affs_symlink_inode_operations Fabian Frederick
@ 2015-02-05 19:05 ` Fabian Frederick
  4 siblings, 0 replies; 6+ messages in thread
From: Fabian Frederick @ 2015-02-05 19:05 UTC (permalink / raw)
  To: linux-kernel; +Cc: Fabian Frederick, Andrew Morton

Fix checkpatch error:
ERROR: switch and case should be at the same indent

Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Fabian Frederick <fabf@skynet.be>
---
 fs/affs/super.c | 66 ++++++++++++++++++++++++++++-----------------------------
 1 file changed, 33 insertions(+), 33 deletions(-)

diff --git a/fs/affs/super.c b/fs/affs/super.c
index c3524bf..4cf0e91 100644
--- a/fs/affs/super.c
+++ b/fs/affs/super.c
@@ -432,39 +432,39 @@ got_root:
 		sb->s_flags |= MS_RDONLY;
 	}
 	switch (chksum) {
-		case MUFS_FS:
-		case MUFS_INTLFFS:
-		case MUFS_DCFFS:
-			sbi->s_flags |= SF_MUFS;
-			/* fall thru */
-		case FS_INTLFFS:
-		case FS_DCFFS:
-			sbi->s_flags |= SF_INTL;
-			break;
-		case MUFS_FFS:
-			sbi->s_flags |= SF_MUFS;
-			break;
-		case FS_FFS:
-			break;
-		case MUFS_OFS:
-			sbi->s_flags |= SF_MUFS;
-			/* fall thru */
-		case FS_OFS:
-			sbi->s_flags |= SF_OFS;
-			sb->s_flags |= MS_NOEXEC;
-			break;
-		case MUFS_DCOFS:
-		case MUFS_INTLOFS:
-			sbi->s_flags |= SF_MUFS;
-		case FS_DCOFS:
-		case FS_INTLOFS:
-			sbi->s_flags |= SF_INTL | SF_OFS;
-			sb->s_flags |= MS_NOEXEC;
-			break;
-		default:
-			pr_err("Unknown filesystem on device %s: %08X\n",
-			       sb->s_id, chksum);
-			return -EINVAL;
+	case MUFS_FS:
+	case MUFS_INTLFFS:
+	case MUFS_DCFFS:
+		sbi->s_flags |= SF_MUFS;
+		/* fall thru */
+	case FS_INTLFFS:
+	case FS_DCFFS:
+		sbi->s_flags |= SF_INTL;
+		break;
+	case MUFS_FFS:
+		sbi->s_flags |= SF_MUFS;
+		break;
+	case FS_FFS:
+		break;
+	case MUFS_OFS:
+		sbi->s_flags |= SF_MUFS;
+		/* fall thru */
+	case FS_OFS:
+		sbi->s_flags |= SF_OFS;
+		sb->s_flags |= MS_NOEXEC;
+		break;
+	case MUFS_DCOFS:
+	case MUFS_INTLOFS:
+		sbi->s_flags |= SF_MUFS;
+	case FS_DCOFS:
+	case FS_INTLOFS:
+		sbi->s_flags |= SF_INTL | SF_OFS;
+		sb->s_flags |= MS_NOEXEC;
+		break;
+	default:
+		pr_err("Unknown filesystem on device %s: %08X\n",
+		       sb->s_id, chksum);
+		return -EINVAL;
 	}
 
 	if (mount_flags & SF_VERBOSE) {
-- 
2.1.0


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-02-05 19:06 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-05 19:05 [PATCH v2 1/6 linux-next] FS/AFFS: use unsigned int for string lengths Fabian Frederick
2015-02-05 19:05 ` [PATCH v2 2/6 linux-next] define AFFSNAMEMAX to replace constant use Fabian Frederick
2015-02-05 19:05 ` [PATCH v2 3/6 linux-next] fs/affs/amigaffs.c: remove else after return Fabian Frederick
2015-02-05 19:05 ` [PATCH v2 4/6 linux-next] fs/affs/bitmap.c: remove unnecessary return Fabian Frederick
2015-02-05 19:05 ` [PATCH v2 5/6 linux-next] fs/affs/inode.c: remove double extern affs_symlink_inode_operations Fabian Frederick
2015-02-05 19:05 ` [PATCH v2 6/6 linux-next] fs/affs/super.c: fix switch indentation Fabian Frederick

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).