public inbox for linux-unionfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Amir Goldstein <amir73il@gmail.com>
To: Miklos Szeredi <miklos@szeredi.hu>
Cc: linux-unionfs@vger.kernel.org
Subject: [PATCH 08/10] ovl: do not cleanup directory and whiteout index entries
Date: Tue, 11 Jul 2017 15:58:41 +0300	[thread overview]
Message-ID: <1499777923-29410-9-git-send-email-amir73il@gmail.com> (raw)
In-Reply-To: <1499777923-29410-1-git-send-email-amir73il@gmail.com>

Directory index entries are going to be used for looking up
redirected upper dirs by lower dir fh when decoding an overlay
file handle of a merge dir.

Whiteout index entries are going to be used as an indication that
an exported overlay file handle should be treated as stale (i.e.
after unlink of the overlay inode).

We don't know the verification rules for directory and whiteout
index entries, because they have not been implemented yet, so skip
verification of those entries and let newer kernels deal with them.

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
---
 fs/overlayfs/namei.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/fs/overlayfs/namei.c b/fs/overlayfs/namei.c
index 9bc0e580a5b3..86f09230a3db 100644
--- a/fs/overlayfs/namei.c
+++ b/fs/overlayfs/namei.c
@@ -397,9 +397,18 @@ int ovl_verify_index(struct dentry *index, struct path *lowerstack,
 	if (!d_inode(index))
 		return 0;
 
-	err = -EISDIR;
-	if (d_is_dir(index))
-		goto fail;
+	/*
+	 * Directory index entries are going to be used for looking up
+	 * redirected upper dirs by lower dir fh when decoding an overlay
+	 * file handle of a merge dir. Whiteout index entries are going to be
+	 * used as an indication that an exported overlay file handle should
+	 * be treated as stale (i.e. after unlink of the overlay inode).
+	 * We don't know the verification rules for directory and whiteout
+	 * index entries, because they have not been implemented yet, so skip
+	 * verification of those entries and let newer kernels deal with them.
+	 */
+	if (d_is_dir(index) || ovl_is_whiteout(index))
+		return 0;
 
 	err = -EINVAL;
 	if (index->d_name.len < sizeof(struct ovl_fh)*2)
-- 
2.7.4

  parent reply	other threads:[~2017-07-11 12:58 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-11 12:58 [PATCH 00/10] overlayfs assorted fixes for v4.13 Amir Goldstein
2017-07-11 12:58 ` [PATCH 01/10] ovl: mark parent impure on ovl_link() Amir Goldstein
2017-07-11 12:58 ` [PATCH 02/10] ovl: fix random return value on mount Amir Goldstein
2017-07-11 12:58 ` [PATCH 03/10] ovl: fix origin verification of index dir Amir Goldstein
2017-07-11 12:58 ` [PATCH 04/10] ovl: remove unneeded check for IS_ERR() Amir Goldstein
2017-07-11 12:58 ` [PATCH 05/10] ovl: suppress file handle support warnings on read-only mount Amir Goldstein
2017-07-11 12:58 ` [PATCH 06/10] ovl: force read-only mount with no index dir Amir Goldstein
2017-07-13 20:11   ` Miklos Szeredi
2017-07-14  6:11     ` Amir Goldstein
2017-07-14  9:47       ` Miklos Szeredi
2017-07-11 12:58 ` [PATCH 07/10] ovl: mount overlay read-only on failure to verify " Amir Goldstein
2017-07-13 20:13   ` Miklos Szeredi
2017-07-14  6:51     ` Amir Goldstein
2017-07-14 10:05       ` Miklos Szeredi
2017-07-14 10:35         ` Amir Goldstein
2017-07-14 10:53           ` Miklos Szeredi
2017-07-14 11:17             ` Amir Goldstein
2017-07-24  8:33               ` Miklos Szeredi
2017-08-07 16:12                 ` Amir Goldstein
2017-07-11 12:58 ` Amir Goldstein [this message]
2017-07-11 12:58 ` [PATCH 09/10] ovl: verify origin of merge dir lower Amir Goldstein
2017-07-11 12:58 ` [PATCH 10/10] ovl: follow decoded origin file handle of merge dir Amir Goldstein
2017-07-13 20:19   ` Miklos Szeredi
2017-07-14  7:42     ` Amir Goldstein
2017-07-14 10:21       ` Miklos Szeredi
2017-07-14 10:58         ` Amir Goldstein
2017-07-24  8:48           ` Miklos Szeredi
2017-07-24 12:14             ` Amir Goldstein
2017-07-25 11:33               ` Miklos Szeredi
2017-07-25 14:30                 ` Amir Goldstein
2017-07-25 15:16                   ` Miklos Szeredi
2017-07-25 22:19                     ` Amir Goldstein
2017-07-26  8:47                       ` Miklos Szeredi
2017-07-26  8:51                         ` Miklos Szeredi
2017-07-26  8:54                           ` Miklos Szeredi
2017-07-26 19:06                             ` Amir Goldstein
2017-07-11 19:32 ` [PATCH 00/10] overlayfs assorted fixes for v4.13 Amir Goldstein

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=1499777923-29410-9-git-send-email-amir73il@gmail.com \
    --to=amir73il@gmail.com \
    --cc=linux-unionfs@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox