[PATCH 2/6 linux-next] FS/AFFS: define AFFSNAMEMAX to replace constant use

From: Fabian Frederick
Date: Tue Feb 03 2015 - 13:08:51 EST


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

Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Fabian Frederick <fabf@xxxxxxxxx>
---
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..26c89fb 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 30
+
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 7a6de60..581a2fb 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)
{
- int len = min_t(u64, dentry->d_name.len, 30);
+ int len = min_t(u64, 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 580b958..06a3ba7 100644
--- a/fs/affs/dir.c
+++ b/fs/affs/dir.c
@@ -114,7 +114,8 @@ inside:
break;
}

- namelen = min_t(u8, AFFS_TAIL(sb, fh_bh)->name[0], 30);
+ namelen = min_t(u8, AFFS_TAIL(sb, fh_bh)->name[0],
+ 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 4a04c2d..f3cd869 100644
--- a/fs/affs/namei.c
+++ b/fs/affs/namei.c
@@ -71,7 +71,7 @@ __affs_hash_dentry(struct qstr *qstr, toupper_t toupper, bool notruncate)
return i;

hash = init_name_hash();
- i = min_t(u64, qstr->len, 30);
+ i = min_t(u64, qstr->len, AFFSNAMEMAX);
for (; i > 0; name++, i--)
hash = partial_name_hash(toupper(*name), hash);
qstr->hash = end_name_hash(hash);
@@ -114,10 +114,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;

@@ -156,10 +156,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;

@@ -175,7 +175,7 @@ affs_hash_name(struct super_block *sb, const u8 *name, unsigned int len)
toupper_t toupper = affs_get_toupper(sb);
int hash;

- hash = len = min_t(unsigned, len, 30);
+ hash = len = min_t(unsigned, 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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/