|
@@ -137,7 +137,7 @@ int ovl_permission(struct inode *inode, int mask)
|
|
return err;
|
|
return err;
|
|
|
|
|
|
old_cred = ovl_override_creds(inode->i_sb);
|
|
old_cred = ovl_override_creds(inode->i_sb);
|
|
- if (!is_upper)
|
|
|
|
|
|
+ if (!is_upper && !special_file(realinode->i_mode))
|
|
mask &= ~(MAY_WRITE | MAY_APPEND);
|
|
mask &= ~(MAY_WRITE | MAY_APPEND);
|
|
err = inode_permission(realinode, mask);
|
|
err = inode_permission(realinode, mask);
|
|
revert_creds(old_cred);
|
|
revert_creds(old_cred);
|