diff options
author | Miklos Szeredi <mszeredi@suse.cz> | 2008-07-01 09:01:29 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2008-07-26 20:53:28 -0400 |
commit | beb29e058c35ab69e96e455a12ccf7505f6de425 (patch) | |
tree | 0da9869b7e0422c34423a02216db1a758a55a95a /fs/utimes.c | |
parent | b1da47e29e467f1ec36dc78d009bfb109fd533c7 (diff) |
[patch 4/4] vfs: immutable inode checking cleanup
Move the immutable and append-only checks from chmod, chown and utimes
into notify_change(). Checks for immutable and append-only files are
always performed by the VFS and not by the filesystem (see
permission() and may_...() in namei.c), so these belong in
notify_change(), and not in inode_change_ok().
This should be completely equivalent.
CC: Ulrich Drepper <drepper@redhat.com>
CC: Michael Kerrisk <mtk.manpages@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/utimes.c')
-rw-r--r-- | fs/utimes.c | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/fs/utimes.c b/fs/utimes.c index 8e09dbdfd7f5..dad679d3a158 100644 --- a/fs/utimes.c +++ b/fs/utimes.c | |||
@@ -64,10 +64,6 @@ static int utimes_common(struct path *path, struct timespec *times) | |||
64 | 64 | ||
65 | newattrs.ia_valid = ATTR_CTIME | ATTR_MTIME | ATTR_ATIME; | 65 | newattrs.ia_valid = ATTR_CTIME | ATTR_MTIME | ATTR_ATIME; |
66 | if (times) { | 66 | if (times) { |
67 | error = -EPERM; | ||
68 | if (IS_APPEND(inode) || IS_IMMUTABLE(inode)) | ||
69 | goto mnt_drop_write_and_out; | ||
70 | |||
71 | if (times[0].tv_nsec == UTIME_OMIT) | 67 | if (times[0].tv_nsec == UTIME_OMIT) |
72 | newattrs.ia_valid &= ~ATTR_ATIME; | 68 | newattrs.ia_valid &= ~ATTR_ATIME; |
73 | else if (times[0].tv_nsec != UTIME_NOW) { | 69 | else if (times[0].tv_nsec != UTIME_NOW) { |