aboutsummaryrefslogtreecommitdiff
path: root/fs/overlayfs/util.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2021-02-17 14:04:39 +0100
committerIngo Molnar <mingo@kernel.org>2021-02-17 14:04:39 +0100
commited3cd45f8ca873dd320ff7e6b4c1c8f83a65302c (patch)
tree783a02c1e78964654fe6d9a9c14b24bfc50e6b3b /fs/overlayfs/util.c
parentbae4ec13640b0915e7dd86da7e65c5d085160571 (diff)
parentf40ddce88593482919761f74910f42f4b84c004b (diff)
downloadlinux-ed3cd45f8ca873dd320ff7e6b4c1c8f83a65302c.tar.gz
linux-ed3cd45f8ca873dd320ff7e6b4c1c8f83a65302c.tar.bz2
linux-ed3cd45f8ca873dd320ff7e6b4c1c8f83a65302c.zip
Merge tag 'v5.11' into sched/core, to pick up fixes & refresh the branch
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'fs/overlayfs/util.c')
-rw-r--r--fs/overlayfs/util.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/fs/overlayfs/util.c b/fs/overlayfs/util.c
index 6569031af3cd..9826b003f1d2 100644
--- a/fs/overlayfs/util.c
+++ b/fs/overlayfs/util.c
@@ -962,3 +962,30 @@ err_free:
kfree(buf);
return ERR_PTR(res);
}
+
+/*
+ * ovl_sync_status() - Check fs sync status for volatile mounts
+ *
+ * Returns 1 if this is not a volatile mount and a real sync is required.
+ *
+ * Returns 0 if syncing can be skipped because mount is volatile, and no errors
+ * have occurred on the upperdir since the mount.
+ *
+ * Returns -errno if it is a volatile mount, and the error that occurred since
+ * the last mount. If the error code changes, it'll return the latest error
+ * code.
+ */
+
+int ovl_sync_status(struct ovl_fs *ofs)
+{
+ struct vfsmount *mnt;
+
+ if (ovl_should_sync(ofs))
+ return 1;
+
+ mnt = ovl_upper_mnt(ofs);
+ if (!mnt)
+ return 0;
+
+ return errseq_check(&mnt->mnt_sb->s_wb_err, ofs->errseq);
+}