|
@@ -316,7 +316,8 @@ EXPORT_SYMBOL_GPL(mnt_clone_write);
|
|
*/
|
|
*/
|
|
int mnt_want_write_file(struct file *file)
|
|
int mnt_want_write_file(struct file *file)
|
|
{
|
|
{
|
|
- if (!(file->f_mode & FMODE_WRITE))
|
|
|
|
|
|
+ struct inode *inode = file->f_dentry->d_inode;
|
|
|
|
+ if (!(file->f_mode & FMODE_WRITE) || special_file(inode->i_mode))
|
|
return mnt_want_write(file->f_path.mnt);
|
|
return mnt_want_write(file->f_path.mnt);
|
|
else
|
|
else
|
|
return mnt_clone_write(file->f_path.mnt);
|
|
return mnt_clone_write(file->f_path.mnt);
|