forked from luck/tmp_suning_uos_patched
notify_change(): check that i_mutex is held
Cc: Djalal Harouni <tixxdz@opendz.org> Cc: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
b5fb63c183
commit
c4107b3097
|
@ -171,6 +171,8 @@ int notify_change(struct dentry * dentry, struct iattr * attr)
|
||||||
struct timespec now;
|
struct timespec now;
|
||||||
unsigned int ia_valid = attr->ia_valid;
|
unsigned int ia_valid = attr->ia_valid;
|
||||||
|
|
||||||
|
WARN_ON_ONCE(!mutex_is_locked(&inode->i_mutex));
|
||||||
|
|
||||||
if (ia_valid & (ATTR_MODE | ATTR_UID | ATTR_GID | ATTR_TIMES_SET)) {
|
if (ia_valid & (ATTR_MODE | ATTR_UID | ATTR_GID | ATTR_TIMES_SET)) {
|
||||||
if (IS_IMMUTABLE(inode) || IS_APPEND(inode))
|
if (IS_IMMUTABLE(inode) || IS_APPEND(inode))
|
||||||
return -EPERM;
|
return -EPERM;
|
||||||
|
@ -250,5 +252,4 @@ int notify_change(struct dentry * dentry, struct iattr * attr)
|
||||||
|
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
EXPORT_SYMBOL(notify_change);
|
EXPORT_SYMBOL(notify_change);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user