Whamcloud - gitweb
LU-11412 kernel: kernel update [SLES12 SP3 4.4.155-94.50]
[fs/lustre-release.git] / ldiskfs / kernel_patches / patches / sles12sp3 / ext4-max-dir-size.patch
1 Add a proc interface for max_dir_size.
2
3 Index: linux-3.10.0-123.13.2.el7.x86_64/fs/ext4/sysfs.c
4 ===================================================================
5 --- linux-3.10.0-123.13.2.el7.x86_64.orig/fs/ext4/sysfs.c
6 +++ linux-3.10.0-123.13.2.el7.x86_64/fs/ext4/sysfs.c
7 @@ -170,6 +170,8 @@ EXT4_ATTR_FUNC(reserved_clusters, 0644);
8  EXT4_ATTR_OFFSET(inode_readahead_blks, 0644, inode_readahead,
9                  ext4_sb_info, s_inode_readahead_blks);
10  EXT4_RW_ATTR_SBI_UI(inode_goal, s_inode_goal);
11 +EXT4_RW_ATTR_SBI_UI(max_dir_size, s_max_dir_size_kb);
12 +EXT4_RW_ATTR_SBI_UI(max_dir_size_kb, s_max_dir_size_kb);
13  EXT4_RW_ATTR_SBI_UI(mb_stats, s_mb_stats);
14  EXT4_RW_ATTR_SBI_UI(mb_max_to_scan, s_mb_max_to_scan);
15  EXT4_RW_ATTR_SBI_UI(mb_min_to_scan, s_mb_min_to_scan);
16 @@ -199,6 +201,8 @@ static struct attribute *ext4_attrs[] = 
17         ATTR_LIST(reserved_clusters),
18         ATTR_LIST(inode_readahead_blks),
19         ATTR_LIST(inode_goal),
20 +       ATTR_LIST(max_dir_size),
21 +       ATTR_LIST(max_dir_size_kb),
22         ATTR_LIST(mb_stats),
23         ATTR_LIST(mb_max_to_scan),
24         ATTR_LIST(mb_min_to_scan),
25 @@ -284,7 +288,9 @@ static ssize_t ext4_attr_show(struct kob
26                                         le32_to_cpup(ptr));
27                 else
28                         return snprintf(buf, PAGE_SIZE, "%u\n",
29 -                                       *((unsigned int *) ptr));
30 +                                       strcmp("max_dir_size", a->attr.name) ?
31 +                                       *((unsigned int *) ptr) :
32 +                                       (*((unsigned int *) ptr)) << 10);
33         case attr_pointer_atomic:
34                 if (!ptr)
35                         return 0;
36 @@ -317,6 +323,8 @@ static ssize_t ext4_attr_store(struct ko
37                 ret = kstrtoul(skip_spaces(buf), 0, &t);
38                 if (ret)
39                         return ret;
40 +               if (strcmp("max_dir_size", a->attr.name) == 0)
41 +                       t >>= 10;
42                 if (a->attr_ptr == ptr_ext4_super_block_offset)
43                         *((__le32 *) ptr) = cpu_to_le32(t);
44                 else