* [PATCH 1/6 linux-next] FS/AFFS: replace min() with casting/constant suffix by min_t
@ 2015-02-03 18:07 Fabian Frederick
2015-02-03 18:07 ` [PATCH 2/6 linux-next] FS/AFFS: define AFFSNAMEMAX to replace constant use Fabian Frederick
` (5 more replies)
0 siblings, 6 replies; 8+ messages in thread
From: Fabian Frederick @ 2015-02-03 18:07 UTC (permalink / raw)
To: linux-kernel; +Cc: Fabian Frederick, Andrew Morton
This patch prepares for AFFSNAMEMAX definition
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Fabian Frederick <fabf@skynet.be>
---
fs/affs/amigaffs.c | 2 +-
fs/affs/dir.c | 2 +-
fs/affs/namei.c | 4 ++--
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/fs/affs/amigaffs.c b/fs/affs/amigaffs.c
index 511ab6b..7a6de60 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);
+ int len = min_t(u64, dentry->d_name.len, 30);
*bstr++ = len;
memcpy(bstr, dentry->d_name.name, len);
diff --git a/fs/affs/dir.c b/fs/affs/dir.c
index a682892..580b958 100644
--- a/fs/affs/dir.c
+++ b/fs/affs/dir.c
@@ -114,7 +114,7 @@ inside:
break;
}
- namelen = min(AFFS_TAIL(sb, fh_bh)->name[0], (u8)30);
+ namelen = min_t(u8, AFFS_TAIL(sb, fh_bh)->name[0], 30);
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 de84f4d..4a04c2d 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(qstr->len, 30u);
+ i = min_t(u64, qstr->len, 30);
for (; i > 0; name++, i--)
hash = partial_name_hash(toupper(*name), hash);
qstr->hash = end_name_hash(hash);
@@ -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(len, 30u);
+ hash = len = min_t(unsigned, len, 30);
for (; len > 0; len--)
hash = (hash * 13 + toupper(*name++)) & 0x7ff;
--
2.1.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/6 linux-next] FS/AFFS: define AFFSNAMEMAX to replace constant use
2015-02-03 18:07 [PATCH 1/6 linux-next] FS/AFFS: replace min() with casting/constant suffix by min_t Fabian Frederick
@ 2015-02-03 18:07 ` Fabian Frederick
2015-02-03 22:31 ` Andrew Morton
2015-02-03 18:07 ` [PATCH 3/6 linux-next] fs/affs/amigaffs.c: remove else after return Fabian Frederick
` (4 subsequent siblings)
5 siblings, 1 reply; 8+ messages in thread
From: Fabian Frederick @ 2015-02-03 18:07 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>
---
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
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 3/6 linux-next] fs/affs/amigaffs.c: remove else after return
2015-02-03 18:07 [PATCH 1/6 linux-next] FS/AFFS: replace min() with casting/constant suffix by min_t Fabian Frederick
2015-02-03 18:07 ` [PATCH 2/6 linux-next] FS/AFFS: define AFFSNAMEMAX to replace constant use Fabian Frederick
@ 2015-02-03 18:07 ` Fabian Frederick
2015-02-03 18:07 ` [PATCH 4/6 linux-next] fs/affs/bitmap.c: remove unnecessary return Fabian Frederick
` (3 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Fabian Frederick @ 2015-02-03 18:07 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 581a2fb..029e23a 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 related [flat|nested] 8+ messages in thread
* [PATCH 4/6 linux-next] fs/affs/bitmap.c: remove unnecessary return
2015-02-03 18:07 [PATCH 1/6 linux-next] FS/AFFS: replace min() with casting/constant suffix by min_t Fabian Frederick
2015-02-03 18:07 ` [PATCH 2/6 linux-next] FS/AFFS: define AFFSNAMEMAX to replace constant use Fabian Frederick
2015-02-03 18:07 ` [PATCH 3/6 linux-next] fs/affs/amigaffs.c: remove else after return Fabian Frederick
@ 2015-02-03 18:07 ` Fabian Frederick
2015-02-03 18:07 ` [PATCH 5/6 linux-next] fs/affs/inode.c: remove double extern affs_symlink_inode_operations Fabian Frederick
` (2 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Fabian Frederick @ 2015-02-03 18:07 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 related [flat|nested] 8+ messages in thread
* [PATCH 5/6 linux-next] fs/affs/inode.c: remove double extern affs_symlink_inode_operations
2015-02-03 18:07 [PATCH 1/6 linux-next] FS/AFFS: replace min() with casting/constant suffix by min_t Fabian Frederick
` (2 preceding siblings ...)
2015-02-03 18:07 ` [PATCH 4/6 linux-next] fs/affs/bitmap.c: remove unnecessary return Fabian Frederick
@ 2015-02-03 18:07 ` Fabian Frederick
2015-02-03 18:07 ` [PATCH 6/6 linux-next] fs/affs/super.c: fix switch indentation Fabian Frederick
2015-02-03 22:30 ` [PATCH 1/6 linux-next] FS/AFFS: replace min() with casting/constant suffix by min_t Andrew Morton
5 siblings, 0 replies; 8+ messages in thread
From: Fabian Frederick @ 2015-02-03 18:07 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 related [flat|nested] 8+ messages in thread
* [PATCH 6/6 linux-next] fs/affs/super.c: fix switch indentation
2015-02-03 18:07 [PATCH 1/6 linux-next] FS/AFFS: replace min() with casting/constant suffix by min_t Fabian Frederick
` (3 preceding siblings ...)
2015-02-03 18:07 ` [PATCH 5/6 linux-next] fs/affs/inode.c: remove double extern affs_symlink_inode_operations Fabian Frederick
@ 2015-02-03 18:07 ` Fabian Frederick
2015-02-03 22:30 ` [PATCH 1/6 linux-next] FS/AFFS: replace min() with casting/constant suffix by min_t Andrew Morton
5 siblings, 0 replies; 8+ messages in thread
From: Fabian Frederick @ 2015-02-03 18:07 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 related [flat|nested] 8+ messages in thread
* Re: [PATCH 1/6 linux-next] FS/AFFS: replace min() with casting/constant suffix by min_t
2015-02-03 18:07 [PATCH 1/6 linux-next] FS/AFFS: replace min() with casting/constant suffix by min_t Fabian Frederick
` (4 preceding siblings ...)
2015-02-03 18:07 ` [PATCH 6/6 linux-next] fs/affs/super.c: fix switch indentation Fabian Frederick
@ 2015-02-03 22:30 ` Andrew Morton
5 siblings, 0 replies; 8+ messages in thread
From: Andrew Morton @ 2015-02-03 22:30 UTC (permalink / raw)
To: Fabian Frederick; +Cc: linux-kernel
On Tue, 3 Feb 2015 19:07:52 +0100 Fabian Frederick <fabf@skynet.be> wrote:
> This patch prepares for AFFSNAMEMAX definition
>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Signed-off-by: Fabian Frederick <fabf@skynet.be>
> ---
> fs/affs/amigaffs.c | 2 +-
> fs/affs/dir.c | 2 +-
> fs/affs/namei.c | 4 ++--
> 3 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/fs/affs/amigaffs.c b/fs/affs/amigaffs.c
> index 511ab6b..7a6de60 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);
> + int len = min_t(u64, dentry->d_name.len, 30);
int = min_t(u64, u32, int)
Doesn't seem to make sense?
> *bstr++ = len;
> memcpy(bstr, dentry->d_name.name, len);
> diff --git a/fs/affs/dir.c b/fs/affs/dir.c
> index a682892..580b958 100644
> --- a/fs/affs/dir.c
> +++ b/fs/affs/dir.c
> @@ -114,7 +114,7 @@ inside:
> break;
> }
>
> - namelen = min(AFFS_TAIL(sb, fh_bh)->name[0], (u8)30);
> + namelen = min_t(u8, AFFS_TAIL(sb, fh_bh)->name[0], 30);
> 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 de84f4d..4a04c2d 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(qstr->len, 30u);
> + i = min_t(u64, qstr->len, 30);
same here
> for (; i > 0; name++, i--)
> hash = partial_name_hash(toupper(*name), hash);
> qstr->hash = end_name_hash(hash);
> @@ -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(len, 30u);
> + hash = len = min_t(unsigned, len, 30);
int = min_t(unsigned, u32, int)
It's a mess! It would be better to do something like
u32 hash;
hash = min(len, 30U);
Use of min_t is a pretty reliable sign that the types have been screwed
up. Let's try to unscrew the type choices rather than working around
earlier mistakes.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/6 linux-next] FS/AFFS: define AFFSNAMEMAX to replace constant use
2015-02-03 18:07 ` [PATCH 2/6 linux-next] FS/AFFS: define AFFSNAMEMAX to replace constant use Fabian Frederick
@ 2015-02-03 22:31 ` Andrew Morton
0 siblings, 0 replies; 8+ messages in thread
From: Andrew Morton @ 2015-02-03 22:31 UTC (permalink / raw)
To: Fabian Frederick; +Cc: linux-kernel
On Tue, 3 Feb 2015 19:07:53 +0100 Fabian Frederick <fabf@skynet.be> wrote:
> 30 was used all over the place to compare name length against
> AFFS maximum name length.
>
> ...
>
> +#define AFFSNAMEMAX 30
Making this 30U would probably help when cleaning up the sites which use it.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2015-02-03 22:32 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-03 18:07 [PATCH 1/6 linux-next] FS/AFFS: replace min() with casting/constant suffix by min_t Fabian Frederick
2015-02-03 18:07 ` [PATCH 2/6 linux-next] FS/AFFS: define AFFSNAMEMAX to replace constant use Fabian Frederick
2015-02-03 22:31 ` Andrew Morton
2015-02-03 18:07 ` [PATCH 3/6 linux-next] fs/affs/amigaffs.c: remove else after return Fabian Frederick
2015-02-03 18:07 ` [PATCH 4/6 linux-next] fs/affs/bitmap.c: remove unnecessary return Fabian Frederick
2015-02-03 18:07 ` [PATCH 5/6 linux-next] fs/affs/inode.c: remove double extern affs_symlink_inode_operations Fabian Frederick
2015-02-03 18:07 ` [PATCH 6/6 linux-next] fs/affs/super.c: fix switch indentation Fabian Frederick
2015-02-03 22:30 ` [PATCH 1/6 linux-next] FS/AFFS: replace min() with casting/constant suffix by min_t Andrew Morton
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).