This is a note to let you know that I've just added the patch titled

    overlay: Call ovl_drop_write() earlier in ovl_dentry_open()

to the 4.1-stable tree which can be found at:
    
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     overlay-call-ovl_drop_write-earlier-in-ovl_dentry_open.patch
and it can be found in the queue-4.1 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <[email protected]> know about it.


>From f25801ee4680ef1db21e15c112e6e5fe3ffe8da5 Mon Sep 17 00:00:00 2001
From: David Howells <[email protected]>
Date: Thu, 18 Jun 2015 14:32:23 +0100
Subject: overlay: Call ovl_drop_write() earlier in ovl_dentry_open()

From: David Howells <[email protected]>

commit f25801ee4680ef1db21e15c112e6e5fe3ffe8da5 upstream.

Call ovl_drop_write() earlier in ovl_dentry_open() before we call vfs_open()
as we've done the copy up for which we needed the freeze-write lock by that
point.

Signed-off-by: David Howells <[email protected]>
Signed-off-by: Al Viro <[email protected]>
Cc: "Kamata, Munehisa" <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
 fs/overlayfs/inode.c |   14 ++++----------
 1 file changed, 4 insertions(+), 10 deletions(-)

--- a/fs/overlayfs/inode.c
+++ b/fs/overlayfs/inode.c
@@ -342,31 +342,25 @@ static int ovl_dentry_open(struct dentry
        int err;
        struct path realpath;
        enum ovl_path_type type;
-       bool want_write = false;
 
        type = ovl_path_real(dentry, &realpath);
        if (ovl_open_need_copy_up(file->f_flags, type, realpath.dentry)) {
-               want_write = true;
                err = ovl_want_write(dentry);
                if (err)
-                       goto out;
+                       return err;
 
                if (file->f_flags & O_TRUNC)
                        err = ovl_copy_up_last(dentry, NULL, true);
                else
                        err = ovl_copy_up(dentry);
+               ovl_drop_write(dentry);
                if (err)
-                       goto out_drop_write;
+                       return err;
 
                ovl_path_upper(dentry, &realpath);
        }
 
-       err = vfs_open(&realpath, file, cred);
-out_drop_write:
-       if (want_write)
-               ovl_drop_write(dentry);
-out:
-       return err;
+       return vfs_open(&realpath, file, cred);
 }
 
 static const struct inode_operations ovl_file_inode_operations = {


Patches currently in stable-queue which might be from [email protected] are

queue-4.1/overlay-call-ovl_drop_write-earlier-in-ovl_dentry_open.patch
queue-4.1/overlayfs-make-f_path-always-point-to-the-overlay-and-f_inode-to-the-underlay.patch
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to