diff options
Diffstat (limited to 'fs/namespace.c')
| -rw-r--r-- | fs/namespace.c | 4 | 
1 files changed, 3 insertions, 1 deletions
| diff --git a/fs/namespace.c b/fs/namespace.c index 54059b142d6b..3b601f115b6c 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -468,7 +468,9 @@ static inline int may_write_real(struct file *file)  	/* File refers to upper, writable layer? */  	upperdentry = d_real(dentry, NULL, 0, D_REAL_UPPER); -	if (upperdentry && file_inode(file) == d_inode(upperdentry)) +	if (upperdentry && +	    (file_inode(file) == d_inode(upperdentry) || +	     file_inode(file) == d_inode(dentry)))  		return 0;  	/* Lower layer: can't write to real file, sorry... */ | 
