mount: support strictatime option. Closes 5240
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
ea664dde87
commit
9ad8979ff1
@ -113,6 +113,12 @@
|
|||||||
#ifndef MS_RELATIME
|
#ifndef MS_RELATIME
|
||||||
# define MS_RELATIME (1 << 21)
|
# define MS_RELATIME (1 << 21)
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef MS_STRICTATIME
|
||||||
|
# define MS_STRICTATIME (1 << 24)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Any ~MS_FOO value has this bit set: */
|
||||||
|
#define BB_MS_INVERTED_VALUE (1u << 31)
|
||||||
|
|
||||||
#include "libbb.h"
|
#include "libbb.h"
|
||||||
#if ENABLE_FEATURE_MOUNT_LABEL
|
#if ENABLE_FEATURE_MOUNT_LABEL
|
||||||
@ -240,6 +246,7 @@ static const int32_t mount_options[] = {
|
|||||||
/* "nomand" */ ~MS_MANDLOCK,
|
/* "nomand" */ ~MS_MANDLOCK,
|
||||||
/* "relatime" */ MS_RELATIME,
|
/* "relatime" */ MS_RELATIME,
|
||||||
/* "norelatime" */ ~MS_RELATIME,
|
/* "norelatime" */ ~MS_RELATIME,
|
||||||
|
/* "strictatime" */ MS_STRICTATIME,
|
||||||
/* "loud" */ ~MS_SILENT,
|
/* "loud" */ ~MS_SILENT,
|
||||||
/* "rbind" */ MS_BIND|MS_RECURSIVE,
|
/* "rbind" */ MS_BIND|MS_RECURSIVE,
|
||||||
|
|
||||||
@ -297,6 +304,7 @@ static const char mount_option_str[] =
|
|||||||
"nomand\0"
|
"nomand\0"
|
||||||
"relatime\0"
|
"relatime\0"
|
||||||
"norelatime\0"
|
"norelatime\0"
|
||||||
|
"strictatime\0"
|
||||||
"loud\0"
|
"loud\0"
|
||||||
"rbind\0"
|
"rbind\0"
|
||||||
|
|
||||||
@ -473,7 +481,7 @@ static unsigned long parse_mount_options(char *options, char **unrecognized)
|
|||||||
&& (options[opt_len] == '\0' || options[opt_len] == '=')
|
&& (options[opt_len] == '\0' || options[opt_len] == '=')
|
||||||
) {
|
) {
|
||||||
unsigned long fl = mount_options[i];
|
unsigned long fl = mount_options[i];
|
||||||
if ((long)fl < 0)
|
if (fl & BB_MS_INVERTED_VALUE)
|
||||||
flags &= fl;
|
flags &= fl;
|
||||||
else
|
else
|
||||||
flags |= fl;
|
flags |= fl;
|
||||||
|
Loading…
Reference in New Issue
Block a user