On 11/06/2015 05:25 PM, Richard Weinberger wrote:
Am 03.10.2015 um 20:34 schrieb Richard Weinberger:
Am 21.08.2015 um 05:10 schrieb Dongsheng Yang:
To make ubifs support atime flexily, this commit introduces
a Kconfig option named as UBIFS_ATIME_SUPPORT.
With UBIFS_ATIME_SUPPORT=n:
ubifs keeps the full compatibility to no_atime from
the start of ubifs.
=================UBIFS_ATIME_SUPPORT=n=======================
-o - no atime
-o atime - no atime
-o noatime - no atime
-o relatime - no atime
-o strictatime - no atime
-o lazyatime - no atime
With UBIFS_ATIME_SUPPORT=y:
ubifs supports the atime same with other main stream
file systems.
=================UBIFS_ATIME_SUPPORT=y=======================
-o - default behavior (relatime currently)
-o atime - atime support
-o noatime - no atime support
-o relatime - relative atime support
-o strictatime - strict atime support
-o lazyatime - lazy atime support
Signed-off-by: Dongsheng Yang <yangds.fnst@xxxxxxxxxxxxxx>
---
-v2:
implement update_time for ubifs
-v3:
Oops, forgot to assign update_time for
ubifs_dir_inode_operations.
-v4:
drop the patch to change 'Y' to 'N' in
Kconfig
-v5:
simplify the warning in atime supporting
-v6:
* replace ubifs_warn with ubifs_msg
* rewrite the messages in Kconfig as Artem suggested
* remove S_VERSION related code
fs/ubifs/Kconfig | 15 +++++++++++++++
fs/ubifs/dir.c | 3 +++
fs/ubifs/file.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
fs/ubifs/super.c | 12 ++++++++++--
fs/ubifs/ubifs.h | 1 +
5 files changed, 77 insertions(+), 2 deletions(-)
diff --git a/fs/ubifs/Kconfig b/fs/ubifs/Kconfig
index ba66d50..7ff7712 100644
--- a/fs/ubifs/Kconfig
+++ b/fs/ubifs/Kconfig
@@ -35,3 +35,18 @@ config UBIFS_FS_ZLIB
default y
help
Zlib compresses better than LZO but it is slower. Say 'Y' if unsure.
+
+config UBIFS_ATIME_SUPPORT
+ bool "Access time support" if UBIFS_FS
+ depends on UBIFS_FS
+ default n
+ help
+ Originally UBIFS did not support atime, because it looked like a bad idea due
+ increased flash wear. This option adds atime support and it is disabled by default
+ to preserve the old behavior. If you enable this option, UBIFS starts updating atime,
+ which means that file-system read operations will cause writes (inode atime
+ updates). This may affect file-system performance and increase flash device wear,
+ so be careful. How often atime is updated depends on the selected strategy:
+ strictatime is the "heavy", relatime is "lighter", etc.
+
+ If unsure, say 'N'
diff --git a/fs/ubifs/dir.c b/fs/ubifs/dir.c
index 27060fc..8d93427 100644
--- a/fs/ubifs/dir.c
+++ b/fs/ubifs/dir.c
@@ -1187,6 +1187,9 @@ const struct inode_operations ubifs_dir_inode_operations = {
.getxattr = ubifs_getxattr,
.listxattr = ubifs_listxattr,
.removexattr = ubifs_removexattr,
+#ifdef CONFIG_UBIFS_ATIME_SUPPORT
+ .update_time = ubifs_update_time,
+#endif
};
const struct file_operations ubifs_dir_operations = {
diff --git a/fs/ubifs/file.c b/fs/ubifs/file.c
index 35efc10..423ce6b 100644
--- a/fs/ubifs/file.c
+++ b/fs/ubifs/file.c
@@ -1364,6 +1364,45 @@ static inline int mctime_update_needed(const struct inode *inode,
}
/**
+ * ubifs_update_time - update time of inode.
+ * @inode: inode to update
+ *
+ * This function updates time of the inode.
+ */
+int ubifs_update_time(struct inode *inode, struct timespec *time,
+ int flags)
This function should be under an "#ifdef CONFIG_UBIFS_ATIME_SUPPORT".
Beside of that,
Reviewed-by: Richard Weinberger <richard@xxxxxx>
I think we can queue it for v4.4. Artem, what do you think?
Yang, ping?
Oh, forgot to update it! Will send a V7 soon.
Yang
Artem and I would like to have this in v4.4.
Thanks,
//richard
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
.
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html