summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/super.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-09-14 21:54:01 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2017-09-14 21:54:01 -0400
commit0f0d12728e56c94d3289c6831243b6faeae8a19d (patch)
treebd52fd4ed6fba2a0d8bb95e7fc33f51ac299001d /fs/btrfs/super.c
parent581bfce969cbfc7ce43ee92273be9cb7c3fdfa61 (diff)
parente462ec50cb5fad19f6003a3d8087f4a0945dd2b1 (diff)
Merge branch 'work.mount' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull mount flag updates from Al Viro: "Another chunk of fmount preparations from dhowells; only trivial conflicts for that part. It separates MS_... bits (very grotty mount(2) ABI) from the struct super_block ->s_flags (kernel-internal, only a small subset of MS_... stuff). This does *not* convert the filesystems to new constants; only the infrastructure is done here. The next step in that series is where the conflicts would be; that's the conversion of filesystems. It's purely mechanical and it's better done after the merge, so if you could run something like list=$(for i in MS_RDONLY MS_NOSUID MS_NODEV MS_NOEXEC MS_SYNCHRONOUS MS_MANDLOCK MS_DIRSYNC MS_NOATIME MS_NODIRATIME MS_SILENT MS_POSIXACL MS_KERNMOUNT MS_I_VERSION MS_LAZYTIME; do git grep -l $i fs drivers/staging/lustre drivers/mtd ipc mm include/linux; done|sort|uniq|grep -v '^fs/namespace.c$') sed -i -e 's/\<MS_RDONLY\>/SB_RDONLY/g' \ -e 's/\<MS_NOSUID\>/SB_NOSUID/g' \ -e 's/\<MS_NODEV\>/SB_NODEV/g' \ -e 's/\<MS_NOEXEC\>/SB_NOEXEC/g' \ -e 's/\<MS_SYNCHRONOUS\>/SB_SYNCHRONOUS/g' \ -e 's/\<MS_MANDLOCK\>/SB_MANDLOCK/g' \ -e 's/\<MS_DIRSYNC\>/SB_DIRSYNC/g' \ -e 's/\<MS_NOATIME\>/SB_NOATIME/g' \ -e 's/\<MS_NODIRATIME\>/SB_NODIRATIME/g' \ -e 's/\<MS_SILENT\>/SB_SILENT/g' \ -e 's/\<MS_POSIXACL\>/SB_POSIXACL/g' \ -e 's/\<MS_KERNMOUNT\>/SB_KERNMOUNT/g' \ -e 's/\<MS_I_VERSION\>/SB_I_VERSION/g' \ -e 's/\<MS_LAZYTIME\>/SB_LAZYTIME/g' \ $list and commit it with something along the lines of 'convert filesystems away from use of MS_... constants' as commit message, it would save a quite a bit of headache next cycle" * 'work.mount' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: VFS: Differentiate mount flags (MS_*) from internal superblock flags VFS: Convert sb->s_flags & MS_RDONLY to sb_rdonly(sb) vfs: Add sb_rdonly(sb) to query the MS_RDONLY flag on s_flags
Diffstat (limited to 'fs/btrfs/super.c')
-rw-r--r--fs/btrfs/super.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index 2b13d1a69f0b..35a128acfbd1 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -103,7 +103,7 @@ static void btrfs_handle_error(struct btrfs_fs_info *fs_info)
103{ 103{
104 struct super_block *sb = fs_info->sb; 104 struct super_block *sb = fs_info->sb;
105 105
106 if (sb->s_flags & MS_RDONLY) 106 if (sb_rdonly(sb))
107 return; 107 return;
108 108
109 if (test_bit(BTRFS_FS_STATE_ERROR, &fs_info->fs_state)) { 109 if (test_bit(BTRFS_FS_STATE_ERROR, &fs_info->fs_state)) {
@@ -139,7 +139,7 @@ void __btrfs_handle_fs_error(struct btrfs_fs_info *fs_info, const char *function
139 * Special case: if the error is EROFS, and we're already 139 * Special case: if the error is EROFS, and we're already
140 * under MS_RDONLY, then it is safe here. 140 * under MS_RDONLY, then it is safe here.
141 */ 141 */
142 if (errno == -EROFS && (sb->s_flags & MS_RDONLY)) 142 if (errno == -EROFS && sb_rdonly(sb))
143 return; 143 return;
144 144
145#ifdef CONFIG_PRINTK 145#ifdef CONFIG_PRINTK
@@ -1701,8 +1701,7 @@ static inline void btrfs_remount_cleanup(struct btrfs_fs_info *fs_info,
1701 * close or the filesystem is read only. 1701 * close or the filesystem is read only.
1702 */ 1702 */
1703 if (btrfs_raw_test_opt(old_opts, AUTO_DEFRAG) && 1703 if (btrfs_raw_test_opt(old_opts, AUTO_DEFRAG) &&
1704 (!btrfs_raw_test_opt(fs_info->mount_opt, AUTO_DEFRAG) || 1704 (!btrfs_raw_test_opt(fs_info->mount_opt, AUTO_DEFRAG) || sb_rdonly(fs_info->sb))) {
1705 (fs_info->sb->s_flags & MS_RDONLY))) {
1706 btrfs_cleanup_defrag_inodes(fs_info); 1705 btrfs_cleanup_defrag_inodes(fs_info);
1707 } 1706 }
1708 1707
@@ -1749,7 +1748,7 @@ static int btrfs_remount(struct super_block *sb, int *flags, char *data)
1749 btrfs_resize_thread_pool(fs_info, 1748 btrfs_resize_thread_pool(fs_info,
1750 fs_info->thread_pool_size, old_thread_pool_size); 1749 fs_info->thread_pool_size, old_thread_pool_size);
1751 1750
1752 if ((*flags & MS_RDONLY) == (sb->s_flags & MS_RDONLY)) 1751 if ((bool)(*flags & MS_RDONLY) == sb_rdonly(sb))
1753 goto out; 1752 goto out;
1754 1753
1755 if (*flags & MS_RDONLY) { 1754 if (*flags & MS_RDONLY) {
@@ -1850,7 +1849,7 @@ out:
1850 1849
1851restore: 1850restore:
1852 /* We've hit an error - don't reset MS_RDONLY */ 1851 /* We've hit an error - don't reset MS_RDONLY */
1853 if (sb->s_flags & MS_RDONLY) 1852 if (sb_rdonly(sb))
1854 old_flags |= MS_RDONLY; 1853 old_flags |= MS_RDONLY;
1855 sb->s_flags = old_flags; 1854 sb->s_flags = old_flags;
1856 fs_info->mount_opt = old_opts; 1855 fs_info->mount_opt = old_opts;