Merge branch 'work.mount' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 15 Jul 2017 19:00:42 +0000 (12:00 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 15 Jul 2017 19:00:42 +0000 (12:00 -0700)
Pull ->s_options removal from Al Viro:
 "Preparations for fsmount/fsopen stuff (coming next cycle). Everything
  gets moved to explicit ->show_options(), killing ->s_options off +
  some cosmetic bits around fs/namespace.c and friends. Basically, the
  stuff needed to work with fsmount series with minimum of conflicts
  with other work.

  It's not strictly required for this merge window, but it would reduce
  the PITA during the coming cycle, so it would be nice to have those
  bits and pieces out of the way"

* 'work.mount' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  isofs: Fix isofs_show_options()
  VFS: Kill off s_options and helpers
  orangefs: Implement show_options
  9p: Implement show_options
  isofs: Implement show_options
  afs: Implement show_options
  affs: Implement show_options
  befs: Implement show_options
  spufs: Implement show_options
  bpf: Implement show_options
  ramfs: Implement show_options
  pstore: Implement show_options
  omfs: Implement show_options
  hugetlbfs: Implement show_options
  VFS: Don't use save/replace_mount_options if not using generic_show_options
  VFS: Provide empty name qstr
  VFS: Make get_filesystem() return the affected filesystem
  VFS: Clean up whitespace in fs/namespace.c and fs/super.c
  Provide a function to create a NUL-terminated string from unterminated data

19 files changed:
1  2 
Documentation/filesystems/vfs.txt
fs/afs/super.c
fs/btrfs/super.c
fs/dcache.c
fs/debugfs/inode.c
fs/filesystems.c
fs/gfs2/dir.c
fs/hugetlbfs/inode.c
fs/namei.c
fs/namespace.c
fs/pstore/inode.c
fs/pstore/internal.h
fs/pstore/platform.c
include/linux/dcache.h
include/linux/fs.h
include/linux/hugetlb.h
include/linux/string.h
mm/util.c
net/9p/trans_fd.c

Simple merge
diff --cc fs/afs/super.c
Simple merge
Simple merge
diff --cc fs/dcache.c
Simple merge
Simple merge
Simple merge
diff --cc fs/gfs2/dir.c
Simple merge
index 52388611635e29df0bd6286f3d97b0f1a137498e,99b3b9836575cc807097c17bfaf9046e6a6280c7..28d2753be09498769282facb66593c95b91f498a
@@@ -851,16 -851,46 +851,56 @@@ static int hugetlbfs_migrate_page(struc
        return MIGRATEPAGE_SUCCESS;
  }
  
 +static int hugetlbfs_error_remove_page(struct address_space *mapping,
 +                              struct page *page)
 +{
 +      struct inode *inode = mapping->host;
 +
 +      remove_huge_page(page);
 +      hugetlb_fix_reserve_counts(inode);
 +      return 0;
 +}
 +
+ /*
+  * Display the mount options in /proc/mounts.
+  */
+ static int hugetlbfs_show_options(struct seq_file *m, struct dentry *root)
+ {
+       struct hugetlbfs_sb_info *sbinfo = HUGETLBFS_SB(root->d_sb);
+       struct hugepage_subpool *spool = sbinfo->spool;
+       unsigned long hpage_size = huge_page_size(sbinfo->hstate);
+       unsigned hpage_shift = huge_page_shift(sbinfo->hstate);
+       char mod;
+       if (!uid_eq(sbinfo->uid, GLOBAL_ROOT_UID))
+               seq_printf(m, ",uid=%u",
+                          from_kuid_munged(&init_user_ns, sbinfo->uid));
+       if (!gid_eq(sbinfo->gid, GLOBAL_ROOT_GID))
+               seq_printf(m, ",gid=%u",
+                          from_kgid_munged(&init_user_ns, sbinfo->gid));
+       if (sbinfo->mode != 0755)
+               seq_printf(m, ",mode=%o", sbinfo->mode);
+       if (sbinfo->max_inodes != -1)
+               seq_printf(m, ",nr_inodes=%lu", sbinfo->max_inodes);
+       hpage_size /= 1024;
+       mod = 'K';
+       if (hpage_size >= 1024) {
+               hpage_size /= 1024;
+               mod = 'M';
+       }
+       seq_printf(m, ",pagesize=%lu%c", hpage_size, mod);
+       if (spool) {
+               if (spool->max_hpages != -1)
+                       seq_printf(m, ",size=%llu",
+                                  (unsigned long long)spool->max_hpages << hpage_shift);
+               if (spool->min_hpages != -1)
+                       seq_printf(m, ",min_size=%llu",
+                                  (unsigned long long)spool->min_hpages << hpage_shift);
+       }
+       return 0;
+ }
  static int hugetlbfs_statfs(struct dentry *dentry, struct kstatfs *buf)
  {
        struct hugetlbfs_sb_info *sbinfo = HUGETLBFS_SB(dentry->d_sb);
diff --cc fs/namei.c
Simple merge
diff --cc fs/namespace.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc mm/util.c
Simple merge
Simple merge