From: NeilBrown <neilb@suse.de>
To: Miklos Szeredi <miklos@szeredi.hu>
Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH 05/10] ovl: make sure fsync is never called on the lower filesystem.
Date: Mon, 06 Sep 2010 10:50:29 +1000 [thread overview]
Message-ID: <20100906005029.20775.56925.stgit@localhost.localdomain> (raw)
In-Reply-To: <20100906004829.20775.68828.stgit@localhost.localdomain>
If we open a directory O_RDONLY, ->realfile could be on the lower
filesystem.
While fsync is not likely to be called on such a file, we should make
sure never to pass the fsync down as we are treating the lower
filesystem as read-only.
Signed-off-by: NeilBrown <neilb@suse.de>
---
fs/overlayfs/overlayfs.c | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/fs/overlayfs/overlayfs.c b/fs/overlayfs/overlayfs.c
index de854e1..f9eea96 100644
--- a/fs/overlayfs/overlayfs.c
+++ b/fs/overlayfs/overlayfs.c
@@ -329,8 +329,15 @@ static loff_t ovl_dir_llseek(struct file *file, loff_t offset, int origin)
static int ovl_dir_fsync(struct file *file, int datasync)
{
struct ovl_dir_file *od = file->private_data;
+ struct ovl_entry *ue = file->f_path.dentry->d_fsdata;
- return vfs_fsync(od->realfile, datasync);
+ /* realfile could be on lowerdir, but only if this was a read-only open,
+ * in which case we can ignore the fsync.
+ */
+ if (file->f_path.dentry == ue->upperpath.dentry)
+ return vfs_fsync(od->realfile, datasync);
+ else
+ return 0;
}
static int ovl_dir_release(struct inode *inode, struct file *file)
next prev parent reply other threads:[~2010-09-06 0:51 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-06 0:50 [PATCH 00/10] Assorted fixes/enhancements for overlayfs NeilBrown
2010-09-06 0:50 ` [PATCH 01/10] ovl: small optimisation for ovl_lookup NeilBrown
2010-09-06 16:57 ` Miklos Szeredi
2010-09-06 0:50 ` [PATCH 03/10] ovl: use correct seek function for directories NeilBrown
2010-09-06 0:50 ` [PATCH 02/10] ovl: minimal remount support NeilBrown
2010-09-06 0:50 ` [PATCH 04/10] ovl: initialise is_real before use NeilBrown
2010-09-06 0:50 ` [PATCH 10/10] ovl: Assorted updates to Documentation/filesystems/overlayfs.txt NeilBrown
2010-09-06 0:50 ` [PATCH 09/10] VFS: Remove read-only checks from dentry_permission NeilBrown
2010-09-06 19:10 ` Miklos Szeredi
2010-09-08 7:47 ` Neil Brown
2010-09-08 8:58 ` Miklos Szeredi
2010-09-07 15:58 ` Dave Hansen
2010-09-06 0:50 ` [PATCH 08/10] VFS: tiny optimisation in open_other handling NeilBrown
2010-09-06 0:50 ` NeilBrown [this message]
2010-09-06 17:16 ` [PATCH 05/10] ovl: make sure fsync is never called on the lower filesystem Miklos Szeredi
2010-09-06 0:50 ` [PATCH 07/10] ovl: add initial revalidate support NeilBrown
2010-09-16 14:47 ` Miklos Szeredi
2010-09-21 2:40 ` Neil Brown
2010-09-06 0:50 ` [PATCH 06/10] ovl: rename ovl_fill_cache to ovl_dir_read NeilBrown
2010-09-06 19:23 ` [PATCH 00/10] Assorted fixes/enhancements for overlayfs Miklos Szeredi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100906005029.20775.56925.stgit@localhost.localdomain \
--to=neilb@suse.de \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=miklos@szeredi.hu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.