Browse Source

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>
Andrew Morton 13 years ago
parent
commit
c4107b3097
1 changed files with 2 additions and 1 deletions
  1. 2 1
      fs/attr.c

+ 2 - 1
fs/attr.c

@@ -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);