Message ID | 1448611892-26144-1-git-send-email-linux@rasmusvillemoes.dk (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
On Fri, Nov 27, 2015 at 09:11:31AM +0100, Rasmus Villemoes wrote: > This is more readable. > > Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> Reviewed-by: David Sterba <dsterba@suse.com> -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Rasmus, [auto build test WARNING on: v4.4-rc2] [also build test WARNING on: next-20151127] url: https://github.com/0day-ci/linux/commits/Rasmus-Villemoes/btrfs-use-kbasename-in-btrfsic_mount/20151127-161249 config: i386-randconfig-s1-201547 (attached as .config) reproduce: # save the attached .config to linux build tree make ARCH=i386 All warnings (new ones prefixed by >>): fs/btrfs/check-integrity.c: In function 'btrfsic_mount': >> fs/btrfs/check-integrity.c:3140:5: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] p = kbasename(ds->name); ^ vim +/const +3140 fs/btrfs/check-integrity.c 3124 char *p; 3125 3126 if (!device->bdev || !device->name) 3127 continue; 3128 3129 ds = btrfsic_dev_state_alloc(); 3130 if (NULL == ds) { 3131 printk(KERN_INFO 3132 "btrfs check-integrity: kmalloc() failed!\n"); 3133 mutex_unlock(&btrfsic_mutex); 3134 return -1; 3135 } 3136 ds->bdev = device->bdev; 3137 ds->state = state; 3138 bdevname(ds->bdev, ds->name); 3139 ds->name[BDEVNAME_SIZE - 1] = '\0'; > 3140 p = kbasename(ds->name); 3141 strlcpy(ds->name, p, sizeof(ds->name)); 3142 btrfsic_dev_state_hashtable_add(ds, 3143 &btrfsic_dev_state_hashtable); 3144 } 3145 3146 ret = btrfsic_process_superblock(state, fs_devices); 3147 if (0 != ret) { 3148 mutex_unlock(&btrfsic_mutex); --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
On Fri, Nov 27 2015, kbuild test robot <lkp@intel.com> wrote: > Hi Rasmus, > > [auto build test WARNING on: v4.4-rc2] > [also build test WARNING on: next-20151127] > > url: https://github.com/0day-ci/linux/commits/Rasmus-Villemoes/btrfs-use-kbasename-in-btrfsic_mount/20151127-161249 > config: i386-randconfig-s1-201547 (attached as .config) > reproduce: > # save the attached .config to linux build tree > make ARCH=i386 > > All warnings (new ones prefixed by >>): > > fs/btrfs/check-integrity.c: In function 'btrfsic_mount': >>> fs/btrfs/check-integrity.c:3140:5: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] > p = kbasename(ds->name); > ^ > Baah. Ok, that's easy to fix. Sorry for not compile-testing this myself. Rasmus -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, Nov 27, 2015 at 10:11 AM, Rasmus Villemoes
<linux@rasmusvillemoes.dk> wrote:
> This is more readable.
Actually, Rasmus, a bit of offtopic here, but I would like to have
your opinion for that clean up:
http://www.spinics.net/lists/kernel/msg1411600.html
diff --git a/fs/btrfs/check-integrity.c b/fs/btrfs/check-integrity.c index 0340c57bf377..55a5cff390b9 100644 --- a/fs/btrfs/check-integrity.c +++ b/fs/btrfs/check-integrity.c @@ -95,6 +95,7 @@ #include <linux/genhd.h> #include <linux/blkdev.h> #include <linux/vmalloc.h> +#include <linux/string.h> #include "ctree.h" #include "disk-io.h" #include "hash.h" @@ -3136,11 +3137,7 @@ int btrfsic_mount(struct btrfs_root *root, ds->state = state; bdevname(ds->bdev, ds->name); ds->name[BDEVNAME_SIZE - 1] = '\0'; - for (p = ds->name; *p != '\0'; p++); - while (p > ds->name && *p != '/') - p--; - if (*p == '/') - p++; + p = kbasename(ds->name); strlcpy(ds->name, p, sizeof(ds->name)); btrfsic_dev_state_hashtable_add(ds, &btrfsic_dev_state_hashtable);
This is more readable. Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> --- I think the following strlcpy may be somewhat fragile since obviously ds->name and p overlap. It certainly relies on strlcpy doing a forward copy, and since different architectures can have their own strlcpy, that's hard to verify (and also won't necessarily continue to hold). Maybe if (p != ds->name) memmove(ds->name, p, strlen(p)+1); instead. fs/btrfs/check-integrity.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)