linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] mm: Use octal not symbolic permissions
@ 2018-03-26 22:22 Joe Perches
  2018-03-26 22:36 ` David Rientjes
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Joe Perches @ 2018-03-26 22:22 UTC (permalink / raw)
  To: Konrad Rzeszutek Wilk, Hugh Dickins, Christoph Lameter,
	Pekka Enberg, David Rientjes, Joonsoo Kim, Andrew Morton,
	Minchan Kim, Nitin Gupta, Sergey Senozhatsky, Seth Jennings,
	Dan Streetman
  Cc: linux-kernel, linux-mm

mm/*.c files use symbolic and octal styles for permissions.

Using octal and not symbolic permissions is preferred by many as more
readable.

https://lkml.org/lkml/2016/8/2/1945

Prefer the direct use of octal for permissions.

Done using
$ scripts/checkpatch.pl -f --types=SYMBOLIC_PERMS --fix-inplace mm/*.c
and some typing.

Before:	 $ git grep -P -w "0[0-7]{3,3}" mm | wc -l
44
After:	 $ git grep -P -w "0[0-7]{3,3}" mm | wc -l
86

Miscellanea:

o Whitespace neatening around these conversions.

Signed-off-by: Joe Perches <joe@perches.com>
---
 mm/cleancache.c  | 10 ++++------
 mm/cma_debug.c   | 25 ++++++++++---------------
 mm/compaction.c  |  2 +-
 mm/dmapool.c     |  2 +-
 mm/failslab.c    |  2 +-
 mm/frontswap.c   | 11 +++++------
 mm/memblock.c    |  9 ++++++---
 mm/page_alloc.c  |  2 +-
 mm/page_idle.c   |  2 +-
 mm/page_owner.c  |  4 ++--
 mm/shmem.c       |  9 +++++----
 mm/slab_common.c |  4 ++--
 mm/vmalloc.c     |  2 +-
 mm/zsmalloc.c    |  5 +++--
 mm/zswap.c       | 38 +++++++++++++++++++-------------------
 15 files changed, 62 insertions(+), 65 deletions(-)

diff --git a/mm/cleancache.c b/mm/cleancache.c
index f7b9fdc79d97..60d65448f4d0 100644
--- a/mm/cleancache.c
+++ b/mm/cleancache.c
@@ -307,12 +307,10 @@ static int __init init_cleancache(void)
 	struct dentry *root = debugfs_create_dir("cleancache", NULL);
 	if (root == NULL)
 		return -ENXIO;
-	debugfs_create_u64("succ_gets", S_IRUGO, root, &cleancache_succ_gets);
-	debugfs_create_u64("failed_gets", S_IRUGO,
-				root, &cleancache_failed_gets);
-	debugfs_create_u64("puts", S_IRUGO, root, &cleancache_puts);
-	debugfs_create_u64("invalidates", S_IRUGO,
-				root, &cleancache_invalidates);
+	debugfs_create_u64("succ_gets", 0444, root, &cleancache_succ_gets);
+	debugfs_create_u64("failed_gets", 0444, root, &cleancache_failed_gets);
+	debugfs_create_u64("puts", 0444, root, &cleancache_puts);
+	debugfs_create_u64("invalidates", 0444, root, &cleancache_invalidates);
 #endif
 	return 0;
 }
diff --git a/mm/cma_debug.c b/mm/cma_debug.c
index 275df8b5b22e..f23467291cfb 100644
--- a/mm/cma_debug.c
+++ b/mm/cma_debug.c
@@ -172,23 +172,18 @@ static void cma_debugfs_add_one(struct cma *cma, int idx)
 
 	tmp = debugfs_create_dir(name, cma_debugfs_root);
 
-	debugfs_create_file("alloc", S_IWUSR, tmp, cma,
-				&cma_alloc_fops);
-
-	debugfs_create_file("free", S_IWUSR, tmp, cma,
-				&cma_free_fops);
-
-	debugfs_create_file("base_pfn", S_IRUGO, tmp,
-				&cma->base_pfn, &cma_debugfs_fops);
-	debugfs_create_file("count", S_IRUGO, tmp,
-				&cma->count, &cma_debugfs_fops);
-	debugfs_create_file("order_per_bit", S_IRUGO, tmp,
-				&cma->order_per_bit, &cma_debugfs_fops);
-	debugfs_create_file("used", S_IRUGO, tmp, cma, &cma_used_fops);
-	debugfs_create_file("maxchunk", S_IRUGO, tmp, cma, &cma_maxchunk_fops);
+	debugfs_create_file("alloc", 0200, tmp, cma, &cma_alloc_fops);
+	debugfs_create_file("free", 0200, tmp, cma, &cma_free_fops);
+	debugfs_create_file("base_pfn", 0444, tmp,
+			    &cma->base_pfn, &cma_debugfs_fops);
+	debugfs_create_file("count", 0444, tmp, &cma->count, &cma_debugfs_fops);
+	debugfs_create_file("order_per_bit", 0444, tmp,
+			    &cma->order_per_bit, &cma_debugfs_fops);
+	debugfs_create_file("used", 0444, tmp, cma, &cma_used_fops);
+	debugfs_create_file("maxchunk", 0444, tmp, cma, &cma_maxchunk_fops);
 
 	u32s = DIV_ROUND_UP(cma_bitmap_maxno(cma), BITS_PER_BYTE * sizeof(u32));
-	debugfs_create_u32_array("bitmap", S_IRUGO, tmp, (u32*)cma->bitmap, u32s);
+	debugfs_create_u32_array("bitmap", 0444, tmp, (u32 *)cma->bitmap, u32s);
 }
 
 static int __init cma_debugfs_init(void)
diff --git a/mm/compaction.c b/mm/compaction.c
index 028b7210a669..1dd3e6b2d19e 100644
--- a/mm/compaction.c
+++ b/mm/compaction.c
@@ -1897,7 +1897,7 @@ static ssize_t sysfs_compact_node(struct device *dev,
 
 	return count;
 }
-static DEVICE_ATTR(compact, S_IWUSR, NULL, sysfs_compact_node);
+static DEVICE_ATTR(compact, 0200, NULL, sysfs_compact_node);
 
 int compaction_register_node(struct node *node)
 {
diff --git a/mm/dmapool.c b/mm/dmapool.c
index 4d90a64b2fdc..6d4b97e7e9e9 100644
--- a/mm/dmapool.c
+++ b/mm/dmapool.c
@@ -105,7 +105,7 @@ show_pools(struct device *dev, struct device_attribute *attr, char *buf)
 	return PAGE_SIZE - size;
 }
 
-static DEVICE_ATTR(pools, S_IRUGO, show_pools, NULL);
+static DEVICE_ATTR(pools, 0444, show_pools, NULL);
 
 /**
  * dma_pool_create - Creates a pool of consistent memory blocks, for dma.
diff --git a/mm/failslab.c b/mm/failslab.c
index 1f2f248e3601..b135ebb88b6f 100644
--- a/mm/failslab.c
+++ b/mm/failslab.c
@@ -42,7 +42,7 @@ __setup("failslab=", setup_failslab);
 static int __init failslab_debugfs_init(void)
 {
 	struct dentry *dir;
-	umode_t mode = S_IFREG | S_IRUSR | S_IWUSR;
+	umode_t mode = S_IFREG | 0600;
 
 	dir = fault_create_debugfs_attr("failslab", NULL, &failslab.attr);
 	if (IS_ERR(dir))
diff --git a/mm/frontswap.c b/mm/frontswap.c
index fec8b5044040..89942a323767 100644
--- a/mm/frontswap.c
+++ b/mm/frontswap.c
@@ -486,12 +486,11 @@ static int __init init_frontswap(void)
 	struct dentry *root = debugfs_create_dir("frontswap", NULL);
 	if (root == NULL)
 		return -ENXIO;
-	debugfs_create_u64("loads", S_IRUGO, root, &frontswap_loads);
-	debugfs_create_u64("succ_stores", S_IRUGO, root, &frontswap_succ_stores);
-	debugfs_create_u64("failed_stores", S_IRUGO, root,
-				&frontswap_failed_stores);
-	debugfs_create_u64("invalidates", S_IRUGO,
-				root, &frontswap_invalidates);
+	debugfs_create_u64("loads", 0444, root, &frontswap_loads);
+	debugfs_create_u64("succ_stores", 0444, root, &frontswap_succ_stores);
+	debugfs_create_u64("failed_stores", 0444, root,
+			   &frontswap_failed_stores);
+	debugfs_create_u64("invalidates", 0444, root, &frontswap_invalidates);
 #endif
 	return 0;
 }
diff --git a/mm/memblock.c b/mm/memblock.c
index 9b04568ad42a..8078eb8b5088 100644
--- a/mm/memblock.c
+++ b/mm/memblock.c
@@ -1803,10 +1803,13 @@ static int __init memblock_init_debugfs(void)
 	struct dentry *root = debugfs_create_dir("memblock", NULL);
 	if (!root)
 		return -ENXIO;
-	debugfs_create_file("memory", S_IRUGO, root, &memblock.memory, &memblock_debug_fops);
-	debugfs_create_file("reserved", S_IRUGO, root, &memblock.reserved, &memblock_debug_fops);
+	debugfs_create_file("memory", 0444, root,
+			    &memblock.memory, &memblock_debug_fops);
+	debugfs_create_file("reserved", 0444, root,
+			    &memblock.reserved, &memblock_debug_fops);
 #ifdef CONFIG_HAVE_MEMBLOCK_PHYS_MAP
-	debugfs_create_file("physmem", S_IRUGO, root, &memblock.physmem, &memblock_debug_fops);
+	debugfs_create_file("physmem", 0444, root,
+			    &memblock.physmem, &memblock_debug_fops);
 #endif
 
 	return 0;
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 905db9d7962f..fe827b099fb3 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -3086,7 +3086,7 @@ static bool should_fail_alloc_page(gfp_t gfp_mask, unsigned int order)
 
 static int __init fail_page_alloc_debugfs(void)
 {
-	umode_t mode = S_IFREG | S_IRUSR | S_IWUSR;
+	umode_t mode = S_IFREG | 0600;
 	struct dentry *dir;
 
 	dir = fault_create_debugfs_attr("fail_page_alloc", NULL,
diff --git a/mm/page_idle.c b/mm/page_idle.c
index e412a63b2b74..6302bc62c27d 100644
--- a/mm/page_idle.c
+++ b/mm/page_idle.c
@@ -201,7 +201,7 @@ static ssize_t page_idle_bitmap_write(struct file *file, struct kobject *kobj,
 }
 
 static struct bin_attribute page_idle_bitmap_attr =
-		__BIN_ATTR(bitmap, S_IRUSR | S_IWUSR,
+		__BIN_ATTR(bitmap, 0600,
 			   page_idle_bitmap_read, page_idle_bitmap_write, 0);
 
 static struct bin_attribute *page_idle_bin_attrs[] = {
diff --git a/mm/page_owner.c b/mm/page_owner.c
index 77d9e791ae8a..c2494f034d02 100644
--- a/mm/page_owner.c
+++ b/mm/page_owner.c
@@ -631,8 +631,8 @@ static int __init pageowner_init(void)
 		return 0;
 	}
 
-	dentry = debugfs_create_file("page_owner", S_IRUSR, NULL,
-			NULL, &proc_page_owner_operations);
+	dentry = debugfs_create_file("page_owner", 0400, NULL,
+				     NULL, &proc_page_owner_operations);
 
 	return PTR_ERR_OR_ZERO(dentry);
 }
diff --git a/mm/shmem.c b/mm/shmem.c
index a9b6d536b6f1..1d9b4c998738 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -2998,7 +2998,8 @@ static int shmem_symlink(struct inode *dir, struct dentry *dentry, const char *s
 	if (len > PAGE_SIZE)
 		return -ENAMETOOLONG;
 
-	inode = shmem_get_inode(dir->i_sb, dir, S_IFLNK|S_IRWXUGO, 0, VM_NORESERVE);
+	inode = shmem_get_inode(dir->i_sb, dir, S_IFLNK | 0777, 0,
+				VM_NORESERVE);
 	if (!inode)
 		return -ENOSPC;
 
@@ -3421,7 +3422,7 @@ static int shmem_show_options(struct seq_file *seq, struct dentry *root)
 			sbinfo->max_blocks << (PAGE_SHIFT - 10));
 	if (sbinfo->max_inodes != shmem_default_max_inodes())
 		seq_printf(seq, ",nr_inodes=%lu", sbinfo->max_inodes);
-	if (sbinfo->mode != (S_IRWXUGO | S_ISVTX))
+	if (sbinfo->mode != (0777 | S_ISVTX))
 		seq_printf(seq, ",mode=%03ho", sbinfo->mode);
 	if (!uid_eq(sbinfo->uid, GLOBAL_ROOT_UID))
 		seq_printf(seq, ",uid=%u",
@@ -3461,7 +3462,7 @@ int shmem_fill_super(struct super_block *sb, void *data, int silent)
 	if (!sbinfo)
 		return -ENOMEM;
 
-	sbinfo->mode = S_IRWXUGO | S_ISVTX;
+	sbinfo->mode = 0777 | S_ISVTX;
 	sbinfo->uid = current_fsuid();
 	sbinfo->gid = current_fsgid();
 	sb->s_fs_info = sbinfo;
@@ -3904,7 +3905,7 @@ static struct file *__shmem_file_setup(struct vfsmount *mnt, const char *name, l
 	d_set_d_op(path.dentry, &anon_ops);
 
 	res = ERR_PTR(-ENOSPC);
-	inode = shmem_get_inode(sb, NULL, S_IFREG | S_IRWXUGO, 0, flags);
+	inode = shmem_get_inode(sb, NULL, S_IFREG | 0777, 0, flags);
 	if (!inode)
 		goto put_memory;
 
diff --git a/mm/slab_common.c b/mm/slab_common.c
index 61ab2ca8bea7..d315e6cb4b61 100644
--- a/mm/slab_common.c
+++ b/mm/slab_common.c
@@ -1231,9 +1231,9 @@ void cache_random_seq_destroy(struct kmem_cache *cachep)
 
 #if defined(CONFIG_SLAB) || defined(CONFIG_SLUB_DEBUG)
 #ifdef CONFIG_SLAB
-#define SLABINFO_RIGHTS (S_IWUSR | S_IRUSR)
+#define SLABINFO_RIGHTS (0600)
 #else
-#define SLABINFO_RIGHTS S_IRUSR
+#define SLABINFO_RIGHTS (0400)
 #endif
 
 static void print_slabinfo_header(struct seq_file *m)
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index ebff729cc956..7d11db35e350 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -2769,7 +2769,7 @@ static const struct file_operations proc_vmalloc_operations = {
 
 static int __init proc_vmalloc_init(void)
 {
-	proc_create("vmallocinfo", S_IRUSR, NULL, &proc_vmalloc_operations);
+	proc_create("vmallocinfo", 0400, NULL, &proc_vmalloc_operations);
 	return 0;
 }
 module_init(proc_vmalloc_init);
diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c
index 61cb05dc950c..8d87e973a4f5 100644
--- a/mm/zsmalloc.c
+++ b/mm/zsmalloc.c
@@ -661,8 +661,9 @@ static void zs_pool_stat_create(struct zs_pool *pool, const char *name)
 	}
 	pool->stat_dentry = entry;
 
-	entry = debugfs_create_file("classes", S_IFREG | S_IRUGO,
-			pool->stat_dentry, pool, &zs_stats_size_fops);
+	entry = debugfs_create_file("classes", S_IFREG | 0444,
+				    pool->stat_dentry, pool,
+				    &zs_stats_size_fops);
 	if (!entry) {
 		pr_warn("%s: debugfs file entry <%s> creation failed\n",
 				name, "classes");
diff --git a/mm/zswap.c b/mm/zswap.c
index 61a5c41972db..7d34e69507e3 100644
--- a/mm/zswap.c
+++ b/mm/zswap.c
@@ -1256,26 +1256,26 @@ static int __init zswap_debugfs_init(void)
 	if (!zswap_debugfs_root)
 		return -ENOMEM;
 
-	debugfs_create_u64("pool_limit_hit", S_IRUGO,
-			zswap_debugfs_root, &zswap_pool_limit_hit);
-	debugfs_create_u64("reject_reclaim_fail", S_IRUGO,
-			zswap_debugfs_root, &zswap_reject_reclaim_fail);
-	debugfs_create_u64("reject_alloc_fail", S_IRUGO,
-			zswap_debugfs_root, &zswap_reject_alloc_fail);
-	debugfs_create_u64("reject_kmemcache_fail", S_IRUGO,
-			zswap_debugfs_root, &zswap_reject_kmemcache_fail);
-	debugfs_create_u64("reject_compress_poor", S_IRUGO,
-			zswap_debugfs_root, &zswap_reject_compress_poor);
-	debugfs_create_u64("written_back_pages", S_IRUGO,
-			zswap_debugfs_root, &zswap_written_back_pages);
-	debugfs_create_u64("duplicate_entry", S_IRUGO,
-			zswap_debugfs_root, &zswap_duplicate_entry);
-	debugfs_create_u64("pool_total_size", S_IRUGO,
-			zswap_debugfs_root, &zswap_pool_total_size);
-	debugfs_create_atomic_t("stored_pages", S_IRUGO,
-			zswap_debugfs_root, &zswap_stored_pages);
+	debugfs_create_u64("pool_limit_hit", 0444,
+			   zswap_debugfs_root, &zswap_pool_limit_hit);
+	debugfs_create_u64("reject_reclaim_fail", 0444,
+			   zswap_debugfs_root, &zswap_reject_reclaim_fail);
+	debugfs_create_u64("reject_alloc_fail", 0444,
+			   zswap_debugfs_root, &zswap_reject_alloc_fail);
+	debugfs_create_u64("reject_kmemcache_fail", 0444,
+			   zswap_debugfs_root, &zswap_reject_kmemcache_fail);
+	debugfs_create_u64("reject_compress_poor", 0444,
+			   zswap_debugfs_root, &zswap_reject_compress_poor);
+	debugfs_create_u64("written_back_pages", 0444,
+			   zswap_debugfs_root, &zswap_written_back_pages);
+	debugfs_create_u64("duplicate_entry", 0444,
+			   zswap_debugfs_root, &zswap_duplicate_entry);
+	debugfs_create_u64("pool_total_size", 0444,
+			   zswap_debugfs_root, &zswap_pool_total_size);
+	debugfs_create_atomic_t("stored_pages", 0444,
+				zswap_debugfs_root, &zswap_stored_pages);
 	debugfs_create_atomic_t("same_filled_pages", 0444,
-			zswap_debugfs_root, &zswap_same_filled_pages);
+				zswap_debugfs_root, &zswap_same_filled_pages);
 
 	return 0;
 }
-- 
2.15.0

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

* Re: [PATCH] mm: Use octal not symbolic permissions
  2018-03-26 22:22 [PATCH] mm: Use octal not symbolic permissions Joe Perches
@ 2018-03-26 22:36 ` David Rientjes
  2018-03-26 23:05   ` Joe Perches
  2018-03-26 22:41 ` Andrew Morton
  2018-03-28 13:06 ` Michal Hocko
  2 siblings, 1 reply; 9+ messages in thread
From: David Rientjes @ 2018-03-26 22:36 UTC (permalink / raw)
  To: Joe Perches
  Cc: Konrad Rzeszutek Wilk, Hugh Dickins, Christoph Lameter,
	Pekka Enberg, Joonsoo Kim, Andrew Morton, Minchan Kim,
	Nitin Gupta, Sergey Senozhatsky, Seth Jennings, Dan Streetman,
	linux-kernel, linux-mm

On Mon, 26 Mar 2018, Joe Perches wrote:

> mm/*.c files use symbolic and octal styles for permissions.
> 
> Using octal and not symbolic permissions is preferred by many as more
> readable.
> 
> https://lkml.org/lkml/2016/8/2/1945
> 
> Prefer the direct use of octal for permissions.
> 
> Done using
> $ scripts/checkpatch.pl -f --types=SYMBOLIC_PERMS --fix-inplace mm/*.c
> and some typing.
> 
> Before:	 $ git grep -P -w "0[0-7]{3,3}" mm | wc -l
> 44
> After:	 $ git grep -P -w "0[0-7]{3,3}" mm | wc -l
> 86
> 
> Miscellanea:
> 
> o Whitespace neatening around these conversions.
> 
> Signed-off-by: Joe Perches <joe@perches.com>

Acked-by: David Rientjes <rientjes@google.com>

although extending some of these lines to be >80 characters also improves 
the readability imo.

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

* Re: [PATCH] mm: Use octal not symbolic permissions
  2018-03-26 22:22 [PATCH] mm: Use octal not symbolic permissions Joe Perches
  2018-03-26 22:36 ` David Rientjes
@ 2018-03-26 22:41 ` Andrew Morton
  2018-03-26 22:50   ` Joe Perches
  2018-03-28 13:06 ` Michal Hocko
  2 siblings, 1 reply; 9+ messages in thread
From: Andrew Morton @ 2018-03-26 22:41 UTC (permalink / raw)
  To: Joe Perches
  Cc: Konrad Rzeszutek Wilk, Hugh Dickins, Christoph Lameter,
	Pekka Enberg, David Rientjes, Joonsoo Kim, Minchan Kim,
	Nitin Gupta, Sergey Senozhatsky, Seth Jennings, Dan Streetman,
	linux-kernel, linux-mm

On Mon, 26 Mar 2018 15:22:32 -0700 Joe Perches <joe@perches.com> wrote:

> mm/*.c files use symbolic and octal styles for permissions.
> 
> Using octal and not symbolic permissions is preferred by many as more
> readable.
> 
> https://lkml.org/lkml/2016/8/2/1945
> 
> Prefer the direct use of octal for permissions.

Thanks.  I'll park this until after -rc1 because the
benefit-to-potential-for-whoopsies ratio is rather low.

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

* Re: [PATCH] mm: Use octal not symbolic permissions
  2018-03-26 22:41 ` Andrew Morton
@ 2018-03-26 22:50   ` Joe Perches
  0 siblings, 0 replies; 9+ messages in thread
From: Joe Perches @ 2018-03-26 22:50 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Konrad Rzeszutek Wilk, Hugh Dickins, Christoph Lameter,
	Pekka Enberg, David Rientjes, Joonsoo Kim, Minchan Kim,
	Nitin Gupta, Sergey Senozhatsky, Seth Jennings, Dan Streetman,
	linux-kernel, linux-mm

On Mon, 2018-03-26 at 15:41 -0700, Andrew Morton wrote:
> On Mon, 26 Mar 2018 15:22:32 -0700 Joe Perches <joe@perches.com> wrote:
> 
> > mm/*.c files use symbolic and octal styles for permissions.
> > 
> > Using octal and not symbolic permissions is preferred by many as more
> > readable.
> > 
> > https://lkml.org/lkml/2016/8/2/1945
> > 
> > Prefer the direct use of octal for permissions.
> 
> Thanks.  I'll park this until after -rc1 because the
> benefit-to-potential-for-whoopsies ratio is rather low.

No worries.  Whenever.

If you don't like the whitespace changes, or the
sources change so much the patch doesn't apply
cleanly, use the command line below when convenient.

$ ./scripts/checkpatch.pl -f --fix-inplace --types=symbolic_perms mm/*.c

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

* Re: [PATCH] mm: Use octal not symbolic permissions
  2018-03-26 22:36 ` David Rientjes
@ 2018-03-26 23:05   ` Joe Perches
  0 siblings, 0 replies; 9+ messages in thread
From: Joe Perches @ 2018-03-26 23:05 UTC (permalink / raw)
  To: David Rientjes
  Cc: Konrad Rzeszutek Wilk, Hugh Dickins, Christoph Lameter,
	Pekka Enberg, Joonsoo Kim, Andrew Morton, Minchan Kim,
	Nitin Gupta, Sergey Senozhatsky, Seth Jennings, Dan Streetman,
	linux-kernel, linux-mm

On Mon, 2018-03-26 at 15:36 -0700, David Rientjes wrote:
> extending some of these lines to be >80 characters also improves 
> the readability imo.

Right.

I have no personal objection to very occasionally using
line lengths < ~100 chars instead of 80.

AFAIK: neither does Linus.

https://lkml.org/lkml/2016/12/15/749

Beyond that, I believe it's too much left-right eyeball
movement for quick and easy reading comprehension.

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

* Re: [PATCH] mm: Use octal not symbolic permissions
  2018-03-26 22:22 [PATCH] mm: Use octal not symbolic permissions Joe Perches
  2018-03-26 22:36 ` David Rientjes
  2018-03-26 22:41 ` Andrew Morton
@ 2018-03-28 13:06 ` Michal Hocko
  2018-03-28 15:44   ` Joe Perches
  2 siblings, 1 reply; 9+ messages in thread
From: Michal Hocko @ 2018-03-28 13:06 UTC (permalink / raw)
  To: Joe Perches
  Cc: Konrad Rzeszutek Wilk, Hugh Dickins, Christoph Lameter,
	Pekka Enberg, David Rientjes, Joonsoo Kim, Andrew Morton,
	Minchan Kim, Nitin Gupta, Sergey Senozhatsky, Seth Jennings,
	Dan Streetman, linux-kernel, linux-mm

On Mon 26-03-18 15:22:32, Joe Perches wrote:
> mm/*.c files use symbolic and octal styles for permissions.
> 
> Using octal and not symbolic permissions is preferred by many as more
> readable.
> 
> https://lkml.org/lkml/2016/8/2/1945
> 
> Prefer the direct use of octal for permissions.
> 
> Done using
> $ scripts/checkpatch.pl -f --types=SYMBOLIC_PERMS --fix-inplace mm/*.c
> and some typing.
> 
> Before:	 $ git grep -P -w "0[0-7]{3,3}" mm | wc -l
> 44
> After:	 $ git grep -P -w "0[0-7]{3,3}" mm | wc -l
> 86

Ohh, I absolutely detest those symbolic names. I always have to check
what they actually mean to be sure. Octal representation is quite
natural to read. So for once I am really happy about such a clean up
change.

Btw. something like this should be quite easy to automate via
coccinelle AFAIU. 

> Miscellanea:
> 
> o Whitespace neatening around these conversions.
> 
> Signed-off-by: Joe Perches <joe@perches.com>

I hope I haven't overlooked any potential mismatch...

Acked-by: Michal Hocko <mhocko@suse.com>

> ---
>  mm/cleancache.c  | 10 ++++------
>  mm/cma_debug.c   | 25 ++++++++++---------------
>  mm/compaction.c  |  2 +-
>  mm/dmapool.c     |  2 +-
>  mm/failslab.c    |  2 +-
>  mm/frontswap.c   | 11 +++++------
>  mm/memblock.c    |  9 ++++++---
>  mm/page_alloc.c  |  2 +-
>  mm/page_idle.c   |  2 +-
>  mm/page_owner.c  |  4 ++--
>  mm/shmem.c       |  9 +++++----
>  mm/slab_common.c |  4 ++--
>  mm/vmalloc.c     |  2 +-
>  mm/zsmalloc.c    |  5 +++--
>  mm/zswap.c       | 38 +++++++++++++++++++-------------------
>  15 files changed, 62 insertions(+), 65 deletions(-)
> 
> diff --git a/mm/cleancache.c b/mm/cleancache.c
> index f7b9fdc79d97..60d65448f4d0 100644
> --- a/mm/cleancache.c
> +++ b/mm/cleancache.c
> @@ -307,12 +307,10 @@ static int __init init_cleancache(void)
>  	struct dentry *root = debugfs_create_dir("cleancache", NULL);
>  	if (root == NULL)
>  		return -ENXIO;
> -	debugfs_create_u64("succ_gets", S_IRUGO, root, &cleancache_succ_gets);
> -	debugfs_create_u64("failed_gets", S_IRUGO,
> -				root, &cleancache_failed_gets);
> -	debugfs_create_u64("puts", S_IRUGO, root, &cleancache_puts);
> -	debugfs_create_u64("invalidates", S_IRUGO,
> -				root, &cleancache_invalidates);
> +	debugfs_create_u64("succ_gets", 0444, root, &cleancache_succ_gets);
> +	debugfs_create_u64("failed_gets", 0444, root, &cleancache_failed_gets);
> +	debugfs_create_u64("puts", 0444, root, &cleancache_puts);
> +	debugfs_create_u64("invalidates", 0444, root, &cleancache_invalidates);
>  #endif
>  	return 0;
>  }
> diff --git a/mm/cma_debug.c b/mm/cma_debug.c
> index 275df8b5b22e..f23467291cfb 100644
> --- a/mm/cma_debug.c
> +++ b/mm/cma_debug.c
> @@ -172,23 +172,18 @@ static void cma_debugfs_add_one(struct cma *cma, int idx)
>  
>  	tmp = debugfs_create_dir(name, cma_debugfs_root);
>  
> -	debugfs_create_file("alloc", S_IWUSR, tmp, cma,
> -				&cma_alloc_fops);
> -
> -	debugfs_create_file("free", S_IWUSR, tmp, cma,
> -				&cma_free_fops);
> -
> -	debugfs_create_file("base_pfn", S_IRUGO, tmp,
> -				&cma->base_pfn, &cma_debugfs_fops);
> -	debugfs_create_file("count", S_IRUGO, tmp,
> -				&cma->count, &cma_debugfs_fops);
> -	debugfs_create_file("order_per_bit", S_IRUGO, tmp,
> -				&cma->order_per_bit, &cma_debugfs_fops);
> -	debugfs_create_file("used", S_IRUGO, tmp, cma, &cma_used_fops);
> -	debugfs_create_file("maxchunk", S_IRUGO, tmp, cma, &cma_maxchunk_fops);
> +	debugfs_create_file("alloc", 0200, tmp, cma, &cma_alloc_fops);
> +	debugfs_create_file("free", 0200, tmp, cma, &cma_free_fops);
> +	debugfs_create_file("base_pfn", 0444, tmp,
> +			    &cma->base_pfn, &cma_debugfs_fops);
> +	debugfs_create_file("count", 0444, tmp, &cma->count, &cma_debugfs_fops);
> +	debugfs_create_file("order_per_bit", 0444, tmp,
> +			    &cma->order_per_bit, &cma_debugfs_fops);
> +	debugfs_create_file("used", 0444, tmp, cma, &cma_used_fops);
> +	debugfs_create_file("maxchunk", 0444, tmp, cma, &cma_maxchunk_fops);
>  
>  	u32s = DIV_ROUND_UP(cma_bitmap_maxno(cma), BITS_PER_BYTE * sizeof(u32));
> -	debugfs_create_u32_array("bitmap", S_IRUGO, tmp, (u32*)cma->bitmap, u32s);
> +	debugfs_create_u32_array("bitmap", 0444, tmp, (u32 *)cma->bitmap, u32s);
>  }
>  
>  static int __init cma_debugfs_init(void)
> diff --git a/mm/compaction.c b/mm/compaction.c
> index 028b7210a669..1dd3e6b2d19e 100644
> --- a/mm/compaction.c
> +++ b/mm/compaction.c
> @@ -1897,7 +1897,7 @@ static ssize_t sysfs_compact_node(struct device *dev,
>  
>  	return count;
>  }
> -static DEVICE_ATTR(compact, S_IWUSR, NULL, sysfs_compact_node);
> +static DEVICE_ATTR(compact, 0200, NULL, sysfs_compact_node);
>  
>  int compaction_register_node(struct node *node)
>  {
> diff --git a/mm/dmapool.c b/mm/dmapool.c
> index 4d90a64b2fdc..6d4b97e7e9e9 100644
> --- a/mm/dmapool.c
> +++ b/mm/dmapool.c
> @@ -105,7 +105,7 @@ show_pools(struct device *dev, struct device_attribute *attr, char *buf)
>  	return PAGE_SIZE - size;
>  }
>  
> -static DEVICE_ATTR(pools, S_IRUGO, show_pools, NULL);
> +static DEVICE_ATTR(pools, 0444, show_pools, NULL);
>  
>  /**
>   * dma_pool_create - Creates a pool of consistent memory blocks, for dma.
> diff --git a/mm/failslab.c b/mm/failslab.c
> index 1f2f248e3601..b135ebb88b6f 100644
> --- a/mm/failslab.c
> +++ b/mm/failslab.c
> @@ -42,7 +42,7 @@ __setup("failslab=", setup_failslab);
>  static int __init failslab_debugfs_init(void)
>  {
>  	struct dentry *dir;
> -	umode_t mode = S_IFREG | S_IRUSR | S_IWUSR;
> +	umode_t mode = S_IFREG | 0600;
>  
>  	dir = fault_create_debugfs_attr("failslab", NULL, &failslab.attr);
>  	if (IS_ERR(dir))
> diff --git a/mm/frontswap.c b/mm/frontswap.c
> index fec8b5044040..89942a323767 100644
> --- a/mm/frontswap.c
> +++ b/mm/frontswap.c
> @@ -486,12 +486,11 @@ static int __init init_frontswap(void)
>  	struct dentry *root = debugfs_create_dir("frontswap", NULL);
>  	if (root == NULL)
>  		return -ENXIO;
> -	debugfs_create_u64("loads", S_IRUGO, root, &frontswap_loads);
> -	debugfs_create_u64("succ_stores", S_IRUGO, root, &frontswap_succ_stores);
> -	debugfs_create_u64("failed_stores", S_IRUGO, root,
> -				&frontswap_failed_stores);
> -	debugfs_create_u64("invalidates", S_IRUGO,
> -				root, &frontswap_invalidates);
> +	debugfs_create_u64("loads", 0444, root, &frontswap_loads);
> +	debugfs_create_u64("succ_stores", 0444, root, &frontswap_succ_stores);
> +	debugfs_create_u64("failed_stores", 0444, root,
> +			   &frontswap_failed_stores);
> +	debugfs_create_u64("invalidates", 0444, root, &frontswap_invalidates);
>  #endif
>  	return 0;
>  }
> diff --git a/mm/memblock.c b/mm/memblock.c
> index 9b04568ad42a..8078eb8b5088 100644
> --- a/mm/memblock.c
> +++ b/mm/memblock.c
> @@ -1803,10 +1803,13 @@ static int __init memblock_init_debugfs(void)
>  	struct dentry *root = debugfs_create_dir("memblock", NULL);
>  	if (!root)
>  		return -ENXIO;
> -	debugfs_create_file("memory", S_IRUGO, root, &memblock.memory, &memblock_debug_fops);
> -	debugfs_create_file("reserved", S_IRUGO, root, &memblock.reserved, &memblock_debug_fops);
> +	debugfs_create_file("memory", 0444, root,
> +			    &memblock.memory, &memblock_debug_fops);
> +	debugfs_create_file("reserved", 0444, root,
> +			    &memblock.reserved, &memblock_debug_fops);
>  #ifdef CONFIG_HAVE_MEMBLOCK_PHYS_MAP
> -	debugfs_create_file("physmem", S_IRUGO, root, &memblock.physmem, &memblock_debug_fops);
> +	debugfs_create_file("physmem", 0444, root,
> +			    &memblock.physmem, &memblock_debug_fops);
>  #endif
>  
>  	return 0;
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 905db9d7962f..fe827b099fb3 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -3086,7 +3086,7 @@ static bool should_fail_alloc_page(gfp_t gfp_mask, unsigned int order)
>  
>  static int __init fail_page_alloc_debugfs(void)
>  {
> -	umode_t mode = S_IFREG | S_IRUSR | S_IWUSR;
> +	umode_t mode = S_IFREG | 0600;
>  	struct dentry *dir;
>  
>  	dir = fault_create_debugfs_attr("fail_page_alloc", NULL,
> diff --git a/mm/page_idle.c b/mm/page_idle.c
> index e412a63b2b74..6302bc62c27d 100644
> --- a/mm/page_idle.c
> +++ b/mm/page_idle.c
> @@ -201,7 +201,7 @@ static ssize_t page_idle_bitmap_write(struct file *file, struct kobject *kobj,
>  }
>  
>  static struct bin_attribute page_idle_bitmap_attr =
> -		__BIN_ATTR(bitmap, S_IRUSR | S_IWUSR,
> +		__BIN_ATTR(bitmap, 0600,
>  			   page_idle_bitmap_read, page_idle_bitmap_write, 0);
>  
>  static struct bin_attribute *page_idle_bin_attrs[] = {
> diff --git a/mm/page_owner.c b/mm/page_owner.c
> index 77d9e791ae8a..c2494f034d02 100644
> --- a/mm/page_owner.c
> +++ b/mm/page_owner.c
> @@ -631,8 +631,8 @@ static int __init pageowner_init(void)
>  		return 0;
>  	}
>  
> -	dentry = debugfs_create_file("page_owner", S_IRUSR, NULL,
> -			NULL, &proc_page_owner_operations);
> +	dentry = debugfs_create_file("page_owner", 0400, NULL,
> +				     NULL, &proc_page_owner_operations);
>  
>  	return PTR_ERR_OR_ZERO(dentry);
>  }
> diff --git a/mm/shmem.c b/mm/shmem.c
> index a9b6d536b6f1..1d9b4c998738 100644
> --- a/mm/shmem.c
> +++ b/mm/shmem.c
> @@ -2998,7 +2998,8 @@ static int shmem_symlink(struct inode *dir, struct dentry *dentry, const char *s
>  	if (len > PAGE_SIZE)
>  		return -ENAMETOOLONG;
>  
> -	inode = shmem_get_inode(dir->i_sb, dir, S_IFLNK|S_IRWXUGO, 0, VM_NORESERVE);
> +	inode = shmem_get_inode(dir->i_sb, dir, S_IFLNK | 0777, 0,
> +				VM_NORESERVE);
>  	if (!inode)
>  		return -ENOSPC;
>  
> @@ -3421,7 +3422,7 @@ static int shmem_show_options(struct seq_file *seq, struct dentry *root)
>  			sbinfo->max_blocks << (PAGE_SHIFT - 10));
>  	if (sbinfo->max_inodes != shmem_default_max_inodes())
>  		seq_printf(seq, ",nr_inodes=%lu", sbinfo->max_inodes);
> -	if (sbinfo->mode != (S_IRWXUGO | S_ISVTX))
> +	if (sbinfo->mode != (0777 | S_ISVTX))
>  		seq_printf(seq, ",mode=%03ho", sbinfo->mode);
>  	if (!uid_eq(sbinfo->uid, GLOBAL_ROOT_UID))
>  		seq_printf(seq, ",uid=%u",
> @@ -3461,7 +3462,7 @@ int shmem_fill_super(struct super_block *sb, void *data, int silent)
>  	if (!sbinfo)
>  		return -ENOMEM;
>  
> -	sbinfo->mode = S_IRWXUGO | S_ISVTX;
> +	sbinfo->mode = 0777 | S_ISVTX;
>  	sbinfo->uid = current_fsuid();
>  	sbinfo->gid = current_fsgid();
>  	sb->s_fs_info = sbinfo;
> @@ -3904,7 +3905,7 @@ static struct file *__shmem_file_setup(struct vfsmount *mnt, const char *name, l
>  	d_set_d_op(path.dentry, &anon_ops);
>  
>  	res = ERR_PTR(-ENOSPC);
> -	inode = shmem_get_inode(sb, NULL, S_IFREG | S_IRWXUGO, 0, flags);
> +	inode = shmem_get_inode(sb, NULL, S_IFREG | 0777, 0, flags);
>  	if (!inode)
>  		goto put_memory;
>  
> diff --git a/mm/slab_common.c b/mm/slab_common.c
> index 61ab2ca8bea7..d315e6cb4b61 100644
> --- a/mm/slab_common.c
> +++ b/mm/slab_common.c
> @@ -1231,9 +1231,9 @@ void cache_random_seq_destroy(struct kmem_cache *cachep)
>  
>  #if defined(CONFIG_SLAB) || defined(CONFIG_SLUB_DEBUG)
>  #ifdef CONFIG_SLAB
> -#define SLABINFO_RIGHTS (S_IWUSR | S_IRUSR)
> +#define SLABINFO_RIGHTS (0600)
>  #else
> -#define SLABINFO_RIGHTS S_IRUSR
> +#define SLABINFO_RIGHTS (0400)
>  #endif
>  
>  static void print_slabinfo_header(struct seq_file *m)
> diff --git a/mm/vmalloc.c b/mm/vmalloc.c
> index ebff729cc956..7d11db35e350 100644
> --- a/mm/vmalloc.c
> +++ b/mm/vmalloc.c
> @@ -2769,7 +2769,7 @@ static const struct file_operations proc_vmalloc_operations = {
>  
>  static int __init proc_vmalloc_init(void)
>  {
> -	proc_create("vmallocinfo", S_IRUSR, NULL, &proc_vmalloc_operations);
> +	proc_create("vmallocinfo", 0400, NULL, &proc_vmalloc_operations);
>  	return 0;
>  }
>  module_init(proc_vmalloc_init);
> diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c
> index 61cb05dc950c..8d87e973a4f5 100644
> --- a/mm/zsmalloc.c
> +++ b/mm/zsmalloc.c
> @@ -661,8 +661,9 @@ static void zs_pool_stat_create(struct zs_pool *pool, const char *name)
>  	}
>  	pool->stat_dentry = entry;
>  
> -	entry = debugfs_create_file("classes", S_IFREG | S_IRUGO,
> -			pool->stat_dentry, pool, &zs_stats_size_fops);
> +	entry = debugfs_create_file("classes", S_IFREG | 0444,
> +				    pool->stat_dentry, pool,
> +				    &zs_stats_size_fops);
>  	if (!entry) {
>  		pr_warn("%s: debugfs file entry <%s> creation failed\n",
>  				name, "classes");
> diff --git a/mm/zswap.c b/mm/zswap.c
> index 61a5c41972db..7d34e69507e3 100644
> --- a/mm/zswap.c
> +++ b/mm/zswap.c
> @@ -1256,26 +1256,26 @@ static int __init zswap_debugfs_init(void)
>  	if (!zswap_debugfs_root)
>  		return -ENOMEM;
>  
> -	debugfs_create_u64("pool_limit_hit", S_IRUGO,
> -			zswap_debugfs_root, &zswap_pool_limit_hit);
> -	debugfs_create_u64("reject_reclaim_fail", S_IRUGO,
> -			zswap_debugfs_root, &zswap_reject_reclaim_fail);
> -	debugfs_create_u64("reject_alloc_fail", S_IRUGO,
> -			zswap_debugfs_root, &zswap_reject_alloc_fail);
> -	debugfs_create_u64("reject_kmemcache_fail", S_IRUGO,
> -			zswap_debugfs_root, &zswap_reject_kmemcache_fail);
> -	debugfs_create_u64("reject_compress_poor", S_IRUGO,
> -			zswap_debugfs_root, &zswap_reject_compress_poor);
> -	debugfs_create_u64("written_back_pages", S_IRUGO,
> -			zswap_debugfs_root, &zswap_written_back_pages);
> -	debugfs_create_u64("duplicate_entry", S_IRUGO,
> -			zswap_debugfs_root, &zswap_duplicate_entry);
> -	debugfs_create_u64("pool_total_size", S_IRUGO,
> -			zswap_debugfs_root, &zswap_pool_total_size);
> -	debugfs_create_atomic_t("stored_pages", S_IRUGO,
> -			zswap_debugfs_root, &zswap_stored_pages);
> +	debugfs_create_u64("pool_limit_hit", 0444,
> +			   zswap_debugfs_root, &zswap_pool_limit_hit);
> +	debugfs_create_u64("reject_reclaim_fail", 0444,
> +			   zswap_debugfs_root, &zswap_reject_reclaim_fail);
> +	debugfs_create_u64("reject_alloc_fail", 0444,
> +			   zswap_debugfs_root, &zswap_reject_alloc_fail);
> +	debugfs_create_u64("reject_kmemcache_fail", 0444,
> +			   zswap_debugfs_root, &zswap_reject_kmemcache_fail);
> +	debugfs_create_u64("reject_compress_poor", 0444,
> +			   zswap_debugfs_root, &zswap_reject_compress_poor);
> +	debugfs_create_u64("written_back_pages", 0444,
> +			   zswap_debugfs_root, &zswap_written_back_pages);
> +	debugfs_create_u64("duplicate_entry", 0444,
> +			   zswap_debugfs_root, &zswap_duplicate_entry);
> +	debugfs_create_u64("pool_total_size", 0444,
> +			   zswap_debugfs_root, &zswap_pool_total_size);
> +	debugfs_create_atomic_t("stored_pages", 0444,
> +				zswap_debugfs_root, &zswap_stored_pages);
>  	debugfs_create_atomic_t("same_filled_pages", 0444,
> -			zswap_debugfs_root, &zswap_same_filled_pages);
> +				zswap_debugfs_root, &zswap_same_filled_pages);
>  
>  	return 0;
>  }
> -- 
> 2.15.0

-- 
Michal Hocko
SUSE Labs

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

* Re: [PATCH] mm: Use octal not symbolic permissions
  2018-03-28 13:06 ` Michal Hocko
@ 2018-03-28 15:44   ` Joe Perches
  2018-03-28 19:07     ` Michal Hocko
  0 siblings, 1 reply; 9+ messages in thread
From: Joe Perches @ 2018-03-28 15:44 UTC (permalink / raw)
  To: Michal Hocko
  Cc: Konrad Rzeszutek Wilk, Hugh Dickins, Christoph Lameter,
	Pekka Enberg, David Rientjes, Joonsoo Kim, Andrew Morton,
	Minchan Kim, Nitin Gupta, Sergey Senozhatsky, Seth Jennings,
	Dan Streetman, linux-kernel, linux-mm

On Wed, 2018-03-28 at 15:06 +0200, Michal Hocko wrote:
> On Mon 26-03-18 15:22:32, Joe Perches wrote:
> > mm/*.c files use symbolic and octal styles for permissions.
> > 
> > Using octal and not symbolic permissions is preferred by many as more
> > readable.
> > 
> > https://lkml.org/lkml/2016/8/2/1945
> > 
> > Prefer the direct use of octal for permissions.
> > 
> > Done using
> > $ scripts/checkpatch.pl -f --types=SYMBOLIC_PERMS --fix-inplace mm/*.c
> > and some typing.
> > 
> > Before:	 $ git grep -P -w "0[0-7]{3,3}" mm | wc -l
> > 44
> > After:	 $ git grep -P -w "0[0-7]{3,3}" mm | wc -l
> > 86
> 

> Ohh, I absolutely detest those symbolic names. I always have to check
> what they actually mean to be sure. Octal representation is quite
> natural to read. So for once I am really happy about such a clean up
> change.
> 
> Btw. something like this should be quite easy to automate via
> coccinelle AFAIU. 

checkpatch is currently better at this, for some
definition of better, than Coccinelle.

Julia and I had a discussion about it awhile ago.
https://lkml.org/lkml/2017/2/4/140

S_<FOO> groupings need to be combined and can
appear in arbitrary order.

Coccinelle would need the same octal addition in
some code path as checkpatch already has.

> > Miscellanea:
> > 
> > o Whitespace neatening around these conversions.
> > 
> > Signed-off-by: Joe Perches <joe@perches.com>
> 
> I hope I haven't overlooked any potential mismatch...

Doubtful as the conversion is completely automated.

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

* Re: [PATCH] mm: Use octal not symbolic permissions
  2018-03-28 15:44   ` Joe Perches
@ 2018-03-28 19:07     ` Michal Hocko
  2018-03-28 19:26       ` Joe Perches
  0 siblings, 1 reply; 9+ messages in thread
From: Michal Hocko @ 2018-03-28 19:07 UTC (permalink / raw)
  To: Joe Perches
  Cc: Konrad Rzeszutek Wilk, Hugh Dickins, Christoph Lameter,
	Pekka Enberg, David Rientjes, Joonsoo Kim, Andrew Morton,
	Minchan Kim, Nitin Gupta, Sergey Senozhatsky, Seth Jennings,
	Dan Streetman, linux-kernel, linux-mm

On Wed 28-03-18 08:44:51, Joe Perches wrote:
> On Wed, 2018-03-28 at 15:06 +0200, Michal Hocko wrote:
> > On Mon 26-03-18 15:22:32, Joe Perches wrote:
> > > mm/*.c files use symbolic and octal styles for permissions.
> > > 
> > > Using octal and not symbolic permissions is preferred by many as more
> > > readable.
> > > 
> > > https://lkml.org/lkml/2016/8/2/1945
> > > 
> > > Prefer the direct use of octal for permissions.
> > > 
> > > Done using
> > > $ scripts/checkpatch.pl -f --types=SYMBOLIC_PERMS --fix-inplace mm/*.c
[...]
> > I hope I haven't overlooked any potential mismatch...
> 
> Doubtful as the conversion is completely automated.

Ohh, I failed to see --fix-inplace option for checkpatch. I wasn't aware
that checkpatch can perform changes as well.

-- 
Michal Hocko
SUSE Labs

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

* Re: [PATCH] mm: Use octal not symbolic permissions
  2018-03-28 19:07     ` Michal Hocko
@ 2018-03-28 19:26       ` Joe Perches
  0 siblings, 0 replies; 9+ messages in thread
From: Joe Perches @ 2018-03-28 19:26 UTC (permalink / raw)
  To: Michal Hocko
  Cc: Konrad Rzeszutek Wilk, Hugh Dickins, Christoph Lameter,
	Pekka Enberg, David Rientjes, Joonsoo Kim, Andrew Morton,
	Minchan Kim, Nitin Gupta, Sergey Senozhatsky, Seth Jennings,
	Dan Streetman, linux-kernel, linux-mm

On Wed, 2018-03-28 at 21:07 +0200, Michal Hocko wrote:
> I wasn't aware that checkpatch can perform changes as well.

Someone (probably me) should write some better documentation
for checkpatch one day.

The command-line --help output isn't obvious.

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

end of thread, other threads:[~2018-03-28 19:26 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-26 22:22 [PATCH] mm: Use octal not symbolic permissions Joe Perches
2018-03-26 22:36 ` David Rientjes
2018-03-26 23:05   ` Joe Perches
2018-03-26 22:41 ` Andrew Morton
2018-03-26 22:50   ` Joe Perches
2018-03-28 13:06 ` Michal Hocko
2018-03-28 15:44   ` Joe Perches
2018-03-28 19:07     ` Michal Hocko
2018-03-28 19:26       ` Joe Perches

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).