@@ -312,6 +312,8 @@ xfs_start_flags(
312312 mp -> m_flags |= XFS_MOUNT_NOUUID ;
313313 if (ap -> flags & XFSMNT_BARRIER )
314314 mp -> m_flags |= XFS_MOUNT_BARRIER ;
315+ else
316+ mp -> m_flags &= ~XFS_MOUNT_BARRIER ;
315317
316318 return 0 ;
317319}
@@ -655,6 +657,11 @@ xfs_mntupdate(
655657 else
656658 mp -> m_flags &= ~XFS_MOUNT_NOATIME ;
657659
660+ if (args -> flags & XFSMNT_BARRIER )
661+ mp -> m_flags |= XFS_MOUNT_BARRIER ;
662+ else
663+ mp -> m_flags &= ~XFS_MOUNT_BARRIER ;
664+
658665 if ((vfsp -> vfs_flag & VFS_RDONLY ) &&
659666 !(* flags & MS_RDONLY )) {
660667 vfsp -> vfs_flag &= ~VFS_RDONLY ;
@@ -1634,6 +1641,7 @@ xfs_vget(
16341641#define MNTOPT_NORECOVERY "norecovery" /* don't run XFS recovery */
16351642#define MNTOPT_BARRIER "barrier" /* use writer barriers for log write and
16361643 * unwritten extent conversion */
1644+ #define MNTOPT_NOBARRIER "nobarrier" /* .. disable */
16371645#define MNTOPT_OSYNCISOSYNC "osyncisosync" /* o_sync is REALLY o_sync */
16381646#define MNTOPT_64BITINODE "inode64" /* inodes can be allocated anywhere */
16391647#define MNTOPT_IKEEP "ikeep" /* do not free empty inode clusters */
@@ -1681,6 +1689,7 @@ xfs_parseargs(
16811689
16821690 args -> flags2 |= XFSMNT2_COMPAT_IOSIZE ;
16831691 args -> flags |= XFSMNT_COMPAT_ATTR ;
1692+ args -> flags |= XFSMNT_BARRIER ;
16841693
16851694#if 0 /* XXX: off by default, until some remaining issues ironed out */
16861695 args -> flags |= XFSMNT_IDELETE ; /* default to on */
@@ -1806,6 +1815,8 @@ xfs_parseargs(
18061815 args -> flags |= XFSMNT_NOUUID ;
18071816 } else if (!strcmp (this_char , MNTOPT_BARRIER )) {
18081817 args -> flags |= XFSMNT_BARRIER ;
1818+ } else if (!strcmp (this_char , MNTOPT_NOBARRIER )) {
1819+ args -> flags &= ~XFSMNT_BARRIER ;
18091820 } else if (!strcmp (this_char , MNTOPT_IKEEP )) {
18101821 args -> flags &= ~XFSMNT_IDELETE ;
18111822 } else if (!strcmp (this_char , MNTOPT_NOIKEEP )) {
@@ -1892,7 +1903,6 @@ xfs_showargs(
18921903 { XFS_MOUNT_NOUUID , "," MNTOPT_NOUUID },
18931904 { XFS_MOUNT_NORECOVERY , "," MNTOPT_NORECOVERY },
18941905 { XFS_MOUNT_OSYNCISOSYNC , "," MNTOPT_OSYNCISOSYNC },
1895- { XFS_MOUNT_BARRIER , "," MNTOPT_BARRIER },
18961906 { XFS_MOUNT_IDELETE , "," MNTOPT_NOIKEEP },
18971907 { 0 , NULL }
18981908 };
@@ -1941,6 +1951,9 @@ xfs_showargs(
19411951 if (!(vfsp -> vfs_flag & VFS_32BITINODES ))
19421952 seq_printf (m , "," MNTOPT_64BITINODE );
19431953
1954+ if (!(vfsp -> vfs_flag & XFS_MOUNT_BARRIER ))
1955+ seq_printf (m , "," MNTOPT_NOBARRIER );
1956+
19441957 if (vfsp -> vfs_flag & VFS_GRPID )
19451958 seq_printf (m , "," MNTOPT_GRPID );
19461959
0 commit comments