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
This commit is contained in:
@@ -487,7 +487,7 @@ static int ntfs_remount(struct super_block *sb, int *flags, char *opt)
|
||||
* When remounting read-only, mark the volume clean if no volume errors
|
||||
* have occurred.
|
||||
*/
|
||||
if ((sb->s_flags & MS_RDONLY) && !(*flags & MS_RDONLY)) {
|
||||
if (sb_rdonly(sb) && !(*flags & MS_RDONLY)) {
|
||||
static const char *es = ". Cannot remount read-write.";
|
||||
|
||||
/* Remounting read-write. */
|
||||
@@ -548,7 +548,7 @@ static int ntfs_remount(struct super_block *sb, int *flags, char *opt)
|
||||
NVolSetErrors(vol);
|
||||
return -EROFS;
|
||||
}
|
||||
} else if (!(sb->s_flags & MS_RDONLY) && (*flags & MS_RDONLY)) {
|
||||
} else if (!sb_rdonly(sb) && (*flags & MS_RDONLY)) {
|
||||
/* Remounting read-only. */
|
||||
if (!NVolErrors(vol)) {
|
||||
if (ntfs_clear_volume_flags(vol, VOLUME_IS_DIRTY))
|
||||
@@ -732,7 +732,7 @@ hotfix_primary_boot_sector:
|
||||
* on a large sector device contains the whole boot loader or
|
||||
* just the first 512 bytes).
|
||||
*/
|
||||
if (!(sb->s_flags & MS_RDONLY)) {
|
||||
if (!sb_rdonly(sb)) {
|
||||
ntfs_warning(sb, "Hot-fix: Recovering invalid primary "
|
||||
"boot sector from backup copy.");
|
||||
memcpy(bh_primary->b_data, bh_backup->b_data,
|
||||
@@ -1789,7 +1789,7 @@ static bool load_system_files(ntfs_volume *vol)
|
||||
static const char *es3 = ". Run ntfsfix and/or chkdsk.";
|
||||
|
||||
/* If a read-write mount, convert it to a read-only mount. */
|
||||
if (!(sb->s_flags & MS_RDONLY)) {
|
||||
if (!sb_rdonly(sb)) {
|
||||
if (!(vol->on_errors & (ON_ERRORS_REMOUNT_RO |
|
||||
ON_ERRORS_CONTINUE))) {
|
||||
ntfs_error(sb, "%s and neither on_errors="
|
||||
@@ -1928,7 +1928,7 @@ get_ctx_vol_failed:
|
||||
(unsigned)le16_to_cpu(vol->vol_flags));
|
||||
}
|
||||
/* If a read-write mount, convert it to a read-only mount. */
|
||||
if (!(sb->s_flags & MS_RDONLY)) {
|
||||
if (!sb_rdonly(sb)) {
|
||||
if (!(vol->on_errors & (ON_ERRORS_REMOUNT_RO |
|
||||
ON_ERRORS_CONTINUE))) {
|
||||
ntfs_error(sb, "%s and neither on_errors="
|
||||
@@ -1961,7 +1961,7 @@ get_ctx_vol_failed:
|
||||
|
||||
es1 = !vol->logfile_ino ? es1a : es1b;
|
||||
/* If a read-write mount, convert it to a read-only mount. */
|
||||
if (!(sb->s_flags & MS_RDONLY)) {
|
||||
if (!sb_rdonly(sb)) {
|
||||
if (!(vol->on_errors & (ON_ERRORS_REMOUNT_RO |
|
||||
ON_ERRORS_CONTINUE))) {
|
||||
ntfs_error(sb, "%s and neither on_errors="
|
||||
@@ -2010,7 +2010,7 @@ get_ctx_vol_failed:
|
||||
|
||||
es1 = err < 0 ? es1a : es1b;
|
||||
/* If a read-write mount, convert it to a read-only mount. */
|
||||
if (!(sb->s_flags & MS_RDONLY)) {
|
||||
if (!sb_rdonly(sb)) {
|
||||
if (!(vol->on_errors & (ON_ERRORS_REMOUNT_RO |
|
||||
ON_ERRORS_CONTINUE))) {
|
||||
ntfs_error(sb, "%s and neither on_errors="
|
||||
@@ -2028,8 +2028,7 @@ get_ctx_vol_failed:
|
||||
NVolSetErrors(vol);
|
||||
}
|
||||
/* If (still) a read-write mount, mark the volume dirty. */
|
||||
if (!(sb->s_flags & MS_RDONLY) &&
|
||||
ntfs_set_volume_flags(vol, VOLUME_IS_DIRTY)) {
|
||||
if (!sb_rdonly(sb) && ntfs_set_volume_flags(vol, VOLUME_IS_DIRTY)) {
|
||||
static const char *es1 = "Failed to set dirty bit in volume "
|
||||
"information flags";
|
||||
static const char *es2 = ". Run chkdsk.";
|
||||
@@ -2075,8 +2074,7 @@ get_ctx_vol_failed:
|
||||
}
|
||||
#endif
|
||||
/* If (still) a read-write mount, empty the logfile. */
|
||||
if (!(sb->s_flags & MS_RDONLY) &&
|
||||
!ntfs_empty_logfile(vol->logfile_ino)) {
|
||||
if (!sb_rdonly(sb) && !ntfs_empty_logfile(vol->logfile_ino)) {
|
||||
static const char *es1 = "Failed to empty $LogFile";
|
||||
static const char *es2 = ". Mount in Windows.";
|
||||
|
||||
@@ -2121,7 +2119,7 @@ get_ctx_vol_failed:
|
||||
static const char *es2 = ". Run chkdsk.";
|
||||
|
||||
/* If a read-write mount, convert it to a read-only mount. */
|
||||
if (!(sb->s_flags & MS_RDONLY)) {
|
||||
if (!sb_rdonly(sb)) {
|
||||
if (!(vol->on_errors & (ON_ERRORS_REMOUNT_RO |
|
||||
ON_ERRORS_CONTINUE))) {
|
||||
ntfs_error(sb, "%s and neither on_errors="
|
||||
@@ -2139,8 +2137,7 @@ get_ctx_vol_failed:
|
||||
NVolSetErrors(vol);
|
||||
}
|
||||
/* If (still) a read-write mount, mark the quotas out of date. */
|
||||
if (!(sb->s_flags & MS_RDONLY) &&
|
||||
!ntfs_mark_quotas_out_of_date(vol)) {
|
||||
if (!sb_rdonly(sb) && !ntfs_mark_quotas_out_of_date(vol)) {
|
||||
static const char *es1 = "Failed to mark quotas out of date";
|
||||
static const char *es2 = ". Run chkdsk.";
|
||||
|
||||
@@ -2165,7 +2162,7 @@ get_ctx_vol_failed:
|
||||
static const char *es2 = ". Run chkdsk.";
|
||||
|
||||
/* If a read-write mount, convert it to a read-only mount. */
|
||||
if (!(sb->s_flags & MS_RDONLY)) {
|
||||
if (!sb_rdonly(sb)) {
|
||||
if (!(vol->on_errors & (ON_ERRORS_REMOUNT_RO |
|
||||
ON_ERRORS_CONTINUE))) {
|
||||
ntfs_error(sb, "%s and neither on_errors="
|
||||
@@ -2183,7 +2180,7 @@ get_ctx_vol_failed:
|
||||
NVolSetErrors(vol);
|
||||
}
|
||||
/* If (still) a read-write mount, stamp the transaction log. */
|
||||
if (!(sb->s_flags & MS_RDONLY) && !ntfs_stamp_usnjrnl(vol)) {
|
||||
if (!sb_rdonly(sb) && !ntfs_stamp_usnjrnl(vol)) {
|
||||
static const char *es1 = "Failed to stamp transaction log "
|
||||
"($UsnJrnl)";
|
||||
static const char *es2 = ". Run chkdsk.";
|
||||
@@ -2314,7 +2311,7 @@ static void ntfs_put_super(struct super_block *sb)
|
||||
* If a read-write mount and no volume errors have occurred, mark the
|
||||
* volume clean. Also, re-commit all affected inodes.
|
||||
*/
|
||||
if (!(sb->s_flags & MS_RDONLY)) {
|
||||
if (!sb_rdonly(sb)) {
|
||||
if (!NVolErrors(vol)) {
|
||||
if (ntfs_clear_volume_flags(vol, VOLUME_IS_DIRTY))
|
||||
ntfs_warning(sb, "Failed to clear dirty bit "
|
||||
|
Reference in New Issue
Block a user