|
@@ -110,8 +110,10 @@ mempool_t *xfs_ioend_pool;
|
|
|
#define MNTOPT_GQUOTANOENF "gqnoenforce"/* group quota limit enforcement */
|
|
|
#define MNTOPT_PQUOTANOENF "pqnoenforce"/* project quota limit enforcement */
|
|
|
#define MNTOPT_QUOTANOENF "qnoenforce" /* same as uqnoenforce */
|
|
|
-#define MNTOPT_DELAYLOG "delaylog" /* Delayed loging enabled */
|
|
|
-#define MNTOPT_NODELAYLOG "nodelaylog" /* Delayed loging disabled */
|
|
|
+#define MNTOPT_DELAYLOG "delaylog" /* Delayed logging enabled */
|
|
|
+#define MNTOPT_NODELAYLOG "nodelaylog" /* Delayed logging disabled */
|
|
|
+#define MNTOPT_DISCARD "discard" /* Discard unused blocks */
|
|
|
+#define MNTOPT_NODISCARD "nodiscard" /* Do not discard unused blocks */
|
|
|
|
|
|
/*
|
|
|
* Table driven mount option parser.
|
|
@@ -355,6 +357,10 @@ xfs_parseargs(
|
|
|
mp->m_flags |= XFS_MOUNT_DELAYLOG;
|
|
|
} else if (!strcmp(this_char, MNTOPT_NODELAYLOG)) {
|
|
|
mp->m_flags &= ~XFS_MOUNT_DELAYLOG;
|
|
|
+ } else if (!strcmp(this_char, MNTOPT_DISCARD)) {
|
|
|
+ mp->m_flags |= XFS_MOUNT_DISCARD;
|
|
|
+ } else if (!strcmp(this_char, MNTOPT_NODISCARD)) {
|
|
|
+ mp->m_flags &= ~XFS_MOUNT_DISCARD;
|
|
|
} else if (!strcmp(this_char, "ihashsize")) {
|
|
|
xfs_warn(mp,
|
|
|
"ihashsize no longer used, option is deprecated.");
|
|
@@ -388,6 +394,13 @@ xfs_parseargs(
|
|
|
return EINVAL;
|
|
|
}
|
|
|
|
|
|
+ if ((mp->m_flags & XFS_MOUNT_DISCARD) &&
|
|
|
+ !(mp->m_flags & XFS_MOUNT_DELAYLOG)) {
|
|
|
+ xfs_warn(mp,
|
|
|
+ "the discard option is incompatible with the nodelaylog option");
|
|
|
+ return EINVAL;
|
|
|
+ }
|
|
|
+
|
|
|
#ifndef CONFIG_XFS_QUOTA
|
|
|
if (XFS_IS_QUOTA_RUNNING(mp)) {
|
|
|
xfs_warn(mp, "quota support not available in this kernel.");
|
|
@@ -488,6 +501,7 @@ xfs_showargs(
|
|
|
{ XFS_MOUNT_FILESTREAMS, "," MNTOPT_FILESTREAM },
|
|
|
{ XFS_MOUNT_GRPID, "," MNTOPT_GRPID },
|
|
|
{ XFS_MOUNT_DELAYLOG, "," MNTOPT_DELAYLOG },
|
|
|
+ { XFS_MOUNT_DISCARD, "," MNTOPT_DISCARD },
|
|
|
{ 0, NULL }
|
|
|
};
|
|
|
static struct proc_xfs_info xfs_info_unset[] = {
|