Make zfs mount according to relatime config in dataset
Also enable lazytime in mount.zfs Signed-off-by: Chunwei Chen <david.chen@osnexus.com> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Issue #4482
This commit is contained in:
parent
1ad7f89628
commit
10fbf7c406
|
@ -77,7 +77,10 @@ static const option_map_t option_map[] = {
|
||||||
{ MNTOPT_RELATIME, MS_RELATIME, ZS_COMMENT },
|
{ MNTOPT_RELATIME, MS_RELATIME, ZS_COMMENT },
|
||||||
#endif
|
#endif
|
||||||
#ifdef MS_STRICTATIME
|
#ifdef MS_STRICTATIME
|
||||||
{ MNTOPT_DFRATIME, MS_STRICTATIME, ZS_COMMENT },
|
{ MNTOPT_STRICTATIME, MS_STRICTATIME, ZS_COMMENT },
|
||||||
|
#endif
|
||||||
|
#ifdef MS_LAZYTIME
|
||||||
|
{ MNTOPT_LAZYTIME, MS_LAZYTIME, ZS_COMMENT },
|
||||||
#endif
|
#endif
|
||||||
{ MNTOPT_CONTEXT, MS_COMMENT, ZS_COMMENT },
|
{ MNTOPT_CONTEXT, MS_COMMENT, ZS_COMMENT },
|
||||||
{ MNTOPT_FSCONTEXT, MS_COMMENT, ZS_COMMENT },
|
{ MNTOPT_FSCONTEXT, MS_COMMENT, ZS_COMMENT },
|
||||||
|
|
|
@ -68,8 +68,9 @@
|
||||||
#define MNTOPT_NOFAIL "nofail" /* no failure */
|
#define MNTOPT_NOFAIL "nofail" /* no failure */
|
||||||
#define MNTOPT_RELATIME "relatime" /* allow relative time updates */
|
#define MNTOPT_RELATIME "relatime" /* allow relative time updates */
|
||||||
#define MNTOPT_NORELATIME "norelatime" /* do not allow relative time updates */
|
#define MNTOPT_NORELATIME "norelatime" /* do not allow relative time updates */
|
||||||
#define MNTOPT_DFRATIME "strictatime" /* Deferred access time updates */
|
#define MNTOPT_STRICTATIME "strictatime" /* strict access time updates */
|
||||||
#define MNTOPT_NODFRATIME "nostrictatime" /* No Deferred access time updates */
|
#define MNTOPT_NOSTRICTATIME "nostrictatime" /* No strict access time updates */
|
||||||
|
#define MNTOPT_LAZYTIME "lazytime" /* Defer access time writing */
|
||||||
#define MNTOPT_SETUID "suid" /* Both setuid and devices allowed */
|
#define MNTOPT_SETUID "suid" /* Both setuid and devices allowed */
|
||||||
#define MNTOPT_NOSETUID "nosuid" /* Neither setuid nor devices allowed */
|
#define MNTOPT_NOSETUID "nosuid" /* Neither setuid nor devices allowed */
|
||||||
#define MNTOPT_OWNER "owner" /* allow owner mount */
|
#define MNTOPT_OWNER "owner" /* allow owner mount */
|
||||||
|
|
|
@ -364,6 +364,14 @@ zfs_add_options(zfs_handle_t *zhp, char *options, int len)
|
||||||
|
|
||||||
error = zfs_add_option(zhp, options, len,
|
error = zfs_add_option(zhp, options, len,
|
||||||
ZFS_PROP_ATIME, MNTOPT_ATIME, MNTOPT_NOATIME);
|
ZFS_PROP_ATIME, MNTOPT_ATIME, MNTOPT_NOATIME);
|
||||||
|
/*
|
||||||
|
* don't add relatime/strictatime when atime=off, otherwise strictatime
|
||||||
|
* will force atime=on
|
||||||
|
*/
|
||||||
|
if (strstr(options, MNTOPT_NOATIME) == NULL) {
|
||||||
|
error = zfs_add_option(zhp, options, len,
|
||||||
|
ZFS_PROP_RELATIME, MNTOPT_RELATIME, MNTOPT_STRICTATIME);
|
||||||
|
}
|
||||||
error = error ? error : zfs_add_option(zhp, options, len,
|
error = error ? error : zfs_add_option(zhp, options, len,
|
||||||
ZFS_PROP_DEVICES, MNTOPT_DEVICES, MNTOPT_NODEVICES);
|
ZFS_PROP_DEVICES, MNTOPT_DEVICES, MNTOPT_NODEVICES);
|
||||||
error = error ? error : zfs_add_option(zhp, options, len,
|
error = error ? error : zfs_add_option(zhp, options, len,
|
||||||
|
|
Loading…
Reference in New Issue