Browse Source

xfs: deprecate barrier/nobarrier mount option

We always perform integrity operations now, so these mount options
don't do anything. Deprecate them and mark them for removal in
in a year.

Signed-Off-By: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Dave Chinner 8 years ago
parent
commit
4cf4573d89
2 changed files with 20 additions and 17 deletions
  1. 4 8
      Documentation/filesystems/xfs.txt
  2. 16 9
      fs/xfs/xfs_super.c

+ 4 - 8
Documentation/filesystems/xfs.txt

@@ -51,13 +51,6 @@ default behaviour.
 	CRC enabled filesystems always use the attr2 format, and so
 	CRC enabled filesystems always use the attr2 format, and so
 	will reject the noattr2 mount option if it is set.
 	will reject the noattr2 mount option if it is set.
 
 
-  barrier (*)
-  nobarrier
-	Enables/disables the use of block layer write barriers for
-	writes into the journal and for data integrity operations.
-	This allows for drive level write caching to be enabled, for
-	devices that support write barriers.
-
   discard
   discard
   nodiscard (*)
   nodiscard (*)
 	Enable/disable the issuing of commands to let the block
 	Enable/disable the issuing of commands to let the block
@@ -228,7 +221,10 @@ default behaviour.
 Deprecated Mount Options
 Deprecated Mount Options
 ========================
 ========================
 
 
-None at present.
+  Name				Removal Schedule
+  ----				----------------
+  barrier			no earlier than v4.15
+  nobarrier			no earlier than v4.15
 
 
 
 
 Removed Mount Options
 Removed Mount Options

+ 16 - 9
fs/xfs/xfs_super.c

@@ -104,9 +104,6 @@ static const match_table_t tokens = {
 	{Opt_sysvgroups,"sysvgroups"},	/* group-ID from current process */
 	{Opt_sysvgroups,"sysvgroups"},	/* group-ID from current process */
 	{Opt_allocsize,	"allocsize=%s"},/* preferred allocation size */
 	{Opt_allocsize,	"allocsize=%s"},/* preferred allocation size */
 	{Opt_norecovery,"norecovery"},	/* don't run XFS recovery */
 	{Opt_norecovery,"norecovery"},	/* don't run XFS recovery */
-	{Opt_barrier,	"barrier"},	/* use writer barriers for log write and
-					 * unwritten extent conversion */
-	{Opt_nobarrier,	"nobarrier"},	/* .. disable */
 	{Opt_inode64,	"inode64"},	/* inodes can be allocated anywhere */
 	{Opt_inode64,	"inode64"},	/* inodes can be allocated anywhere */
 	{Opt_inode32,   "inode32"},	/* inode allocation limited to
 	{Opt_inode32,   "inode32"},	/* inode allocation limited to
 					 * XFS_MAXINUMBER_32 */
 					 * XFS_MAXINUMBER_32 */
@@ -134,6 +131,12 @@ static const match_table_t tokens = {
 	{Opt_nodiscard,	"nodiscard"},	/* Do not discard unused blocks */
 	{Opt_nodiscard,	"nodiscard"},	/* Do not discard unused blocks */
 
 
 	{Opt_dax,	"dax"},		/* Enable direct access to bdev pages */
 	{Opt_dax,	"dax"},		/* Enable direct access to bdev pages */
+
+	/* Deprecated mount options scheduled for removal */
+	{Opt_barrier,	"barrier"},	/* use writer barriers for log write and
+					 * unwritten extent conversion */
+	{Opt_nobarrier,	"nobarrier"},	/* .. disable */
+
 	{Opt_err,	NULL},
 	{Opt_err,	NULL},
 };
 };
 
 
@@ -301,12 +304,6 @@ xfs_parseargs(
 		case Opt_nouuid:
 		case Opt_nouuid:
 			mp->m_flags |= XFS_MOUNT_NOUUID;
 			mp->m_flags |= XFS_MOUNT_NOUUID;
 			break;
 			break;
-		case Opt_barrier:
-			mp->m_flags |= XFS_MOUNT_BARRIER;
-			break;
-		case Opt_nobarrier:
-			mp->m_flags &= ~XFS_MOUNT_BARRIER;
-			break;
 		case Opt_ikeep:
 		case Opt_ikeep:
 			mp->m_flags |= XFS_MOUNT_IKEEP;
 			mp->m_flags |= XFS_MOUNT_IKEEP;
 			break;
 			break;
@@ -374,6 +371,14 @@ xfs_parseargs(
 			mp->m_flags |= XFS_MOUNT_DAX;
 			mp->m_flags |= XFS_MOUNT_DAX;
 			break;
 			break;
 #endif
 #endif
+		case Opt_barrier:
+			xfs_warn(mp, "%s option is deprecated, ignoring.", p);
+			mp->m_flags |= XFS_MOUNT_BARRIER;
+			break;
+		case Opt_nobarrier:
+			xfs_warn(mp, "%s option is deprecated, ignoring.", p);
+			mp->m_flags &= ~XFS_MOUNT_BARRIER;
+			break;
 		default:
 		default:
 			xfs_warn(mp, "unknown mount option [%s].", p);
 			xfs_warn(mp, "unknown mount option [%s].", p);
 			return -EINVAL;
 			return -EINVAL;
@@ -1238,9 +1243,11 @@ xfs_fs_remount(
 		token = match_token(p, tokens, args);
 		token = match_token(p, tokens, args);
 		switch (token) {
 		switch (token) {
 		case Opt_barrier:
 		case Opt_barrier:
+			xfs_warn(mp, "%s option is deprecated, ignoring.", p);
 			mp->m_flags |= XFS_MOUNT_BARRIER;
 			mp->m_flags |= XFS_MOUNT_BARRIER;
 			break;
 			break;
 		case Opt_nobarrier:
 		case Opt_nobarrier:
+			xfs_warn(mp, "%s option is deprecated, ignoring.", p);
 			mp->m_flags &= ~XFS_MOUNT_BARRIER;
 			mp->m_flags &= ~XFS_MOUNT_BARRIER;
 			break;
 			break;
 		case Opt_inode64:
 		case Opt_inode64: