diff options
author | Amir Goldstein <amir73il@gmail.com> | 2017-06-21 15:28:51 +0300 |
---|---|---|
committer | Miklos Szeredi <mszeredi@redhat.com> | 2017-07-04 22:03:16 +0200 |
commit | a015dafcaf5b0316654a39bc598a76804595af90 (patch) | |
tree | 1a7e80fd1904519c9642b6549ad9f32bd5ab4d96 /fs/overlayfs/ovl_entry.h | |
parent | 13c72075ac9f5a5cf3f61c85adaafffe48a6f797 (diff) | |
download | linux-stable-a015dafcaf5b0316654a39bc598a76804595af90.tar.gz linux-stable-a015dafcaf5b0316654a39bc598a76804595af90.tar.bz2 linux-stable-a015dafcaf5b0316654a39bc598a76804595af90.zip |
ovl: use ovl_inode mutex to synchronize concurrent copy up
Use the new ovl_inode mutex to synchonize concurrent copy up
instead of the super block copy up workqueue.
Moving the synchronization object from the overlay dentry to
the overlay inode is needed for synchonizing concurrent copy up
of lower hardlinks to the same upper inode.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Diffstat (limited to 'fs/overlayfs/ovl_entry.h')
-rw-r--r-- | fs/overlayfs/ovl_entry.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/overlayfs/ovl_entry.h b/fs/overlayfs/ovl_entry.h index 50dfa4826152..d8f514a474ca 100644 --- a/fs/overlayfs/ovl_entry.h +++ b/fs/overlayfs/ovl_entry.h @@ -29,7 +29,6 @@ struct ovl_fs { const struct cred *creator_cred; bool tmpfile; bool noxattr; - wait_queue_head_t copyup_wq; /* sb common to all layers */ struct super_block *same_sb; }; @@ -41,7 +40,6 @@ struct ovl_entry { struct { u64 version; bool opaque; - bool copying; }; struct rcu_head rcu; }; @@ -57,6 +55,9 @@ struct ovl_inode { struct inode vfs_inode; struct dentry *__upperdentry; struct inode *lower; + + /* synchronize copy up and more */ + struct mutex lock; }; static inline struct ovl_inode *OVL_I(struct inode *inode) |