diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-05 16:20:53 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-05 16:20:53 -0500 |
commit | e213e26ab3988c516c06eba4dcd030ac052f6dc9 (patch) | |
tree | 6e26fbdbb842b387697d73daf6e70cf718269a77 /fs/namei.c | |
parent | c812a51d11bbe983f4c24e32b59b265705ddd3c2 (diff) | |
parent | efd8f0e6f6c1faa041f228d7113bd3a9db802d49 (diff) |
Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6: (33 commits)
quota: stop using QUOTA_OK / NO_QUOTA
dquot: cleanup dquot initialize routine
dquot: move dquot initialization responsibility into the filesystem
dquot: cleanup dquot drop routine
dquot: move dquot drop responsibility into the filesystem
dquot: cleanup dquot transfer routine
dquot: move dquot transfer responsibility into the filesystem
dquot: cleanup inode allocation / freeing routines
dquot: cleanup space allocation / freeing routines
ext3: add writepage sanity checks
ext3: Truncate allocated blocks if direct IO write fails to update i_size
quota: Properly invalidate caches even for filesystems with blocksize < pagesize
quota: generalize quota transfer interface
quota: sb_quota state flags cleanup
jbd: Delay discarding buffers in journal_unmap_buffer
ext3: quota_write cross block boundary behaviour
quota: drop permission checks from xfs_fs_set_xstate/xfs_fs_set_xquota
quota: split out compat_sys_quotactl support from quota.c
quota: split out netlink notification support from quota.c
quota: remove invalid optimization from quota_sync_all
...
Fixed trivial conflicts in fs/namei.c and fs/ufs/inode.c
Diffstat (limited to 'fs/namei.c')
-rw-r--r-- | fs/namei.c | 16 |
1 files changed, 0 insertions, 16 deletions
diff --git a/fs/namei.c b/fs/namei.c index 9a6456099f1e..3d9d2f965f84 100644 --- a/fs/namei.c +++ b/fs/namei.c | |||
@@ -19,7 +19,6 @@ | |||
19 | #include <linux/slab.h> | 19 | #include <linux/slab.h> |
20 | #include <linux/fs.h> | 20 | #include <linux/fs.h> |
21 | #include <linux/namei.h> | 21 | #include <linux/namei.h> |
22 | #include <linux/quotaops.h> | ||
23 | #include <linux/pagemap.h> | 22 | #include <linux/pagemap.h> |
24 | #include <linux/fsnotify.h> | 23 | #include <linux/fsnotify.h> |
25 | #include <linux/personality.h> | 24 | #include <linux/personality.h> |
@@ -1416,7 +1415,6 @@ int vfs_create(struct inode *dir, struct dentry *dentry, int mode, | |||
1416 | error = security_inode_create(dir, dentry, mode); | 1415 | error = security_inode_create(dir, dentry, mode); |
1417 | if (error) | 1416 | if (error) |
1418 | return error; | 1417 | return error; |
1419 | vfs_dq_init(dir); | ||
1420 | error = dir->i_op->create(dir, dentry, mode, nd); | 1418 | error = dir->i_op->create(dir, dentry, mode, nd); |
1421 | if (!error) | 1419 | if (!error) |
1422 | fsnotify_create(dir, dentry); | 1420 | fsnotify_create(dir, dentry); |
@@ -1586,9 +1584,6 @@ static struct file *finish_open(struct nameidata *nd, | |||
1586 | } | 1584 | } |
1587 | } | 1585 | } |
1588 | if (!IS_ERR(filp)) { | 1586 | if (!IS_ERR(filp)) { |
1589 | if (acc_mode & MAY_WRITE) | ||
1590 | vfs_dq_init(nd->path.dentry->d_inode); | ||
1591 | |||
1592 | if (will_truncate) { | 1587 | if (will_truncate) { |
1593 | error = handle_truncate(&nd->path); | 1588 | error = handle_truncate(&nd->path); |
1594 | if (error) { | 1589 | if (error) { |
@@ -1986,7 +1981,6 @@ int vfs_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t dev) | |||
1986 | if (error) | 1981 | if (error) |
1987 | return error; | 1982 | return error; |
1988 | 1983 | ||
1989 | vfs_dq_init(dir); | ||
1990 | error = dir->i_op->mknod(dir, dentry, mode, dev); | 1984 | error = dir->i_op->mknod(dir, dentry, mode, dev); |
1991 | if (!error) | 1985 | if (!error) |
1992 | fsnotify_create(dir, dentry); | 1986 | fsnotify_create(dir, dentry); |
@@ -2085,7 +2079,6 @@ int vfs_mkdir(struct inode *dir, struct dentry *dentry, int mode) | |||
2085 | if (error) | 2079 | if (error) |
2086 | return error; | 2080 | return error; |
2087 | 2081 | ||
2088 | vfs_dq_init(dir); | ||
2089 | error = dir->i_op->mkdir(dir, dentry, mode); | 2082 | error = dir->i_op->mkdir(dir, dentry, mode); |
2090 | if (!error) | 2083 | if (!error) |
2091 | fsnotify_mkdir(dir, dentry); | 2084 | fsnotify_mkdir(dir, dentry); |
@@ -2171,8 +2164,6 @@ int vfs_rmdir(struct inode *dir, struct dentry *dentry) | |||
2171 | if (!dir->i_op->rmdir) | 2164 | if (!dir->i_op->rmdir) |
2172 | return -EPERM; | 2165 | return -EPERM; |
2173 | 2166 | ||
2174 | vfs_dq_init(dir); | ||
2175 | |||
2176 | mutex_lock(&dentry->d_inode->i_mutex); | 2167 | mutex_lock(&dentry->d_inode->i_mutex); |
2177 | dentry_unhash(dentry); | 2168 | dentry_unhash(dentry); |
2178 | if (d_mountpoint(dentry)) | 2169 | if (d_mountpoint(dentry)) |
@@ -2258,8 +2249,6 @@ int vfs_unlink(struct inode *dir, struct dentry *dentry) | |||
2258 | if (!dir->i_op->unlink) | 2249 | if (!dir->i_op->unlink) |
2259 | return -EPERM; | 2250 | return -EPERM; |
2260 | 2251 | ||
2261 | vfs_dq_init(dir); | ||
2262 | |||
2263 | mutex_lock(&dentry->d_inode->i_mutex); | 2252 | mutex_lock(&dentry->d_inode->i_mutex); |
2264 | if (d_mountpoint(dentry)) | 2253 | if (d_mountpoint(dentry)) |
2265 | error = -EBUSY; | 2254 | error = -EBUSY; |
@@ -2372,7 +2361,6 @@ int vfs_symlink(struct inode *dir, struct dentry *dentry, const char *oldname) | |||
2372 | if (error) | 2361 | if (error) |
2373 | return error; | 2362 | return error; |
2374 | 2363 | ||
2375 | vfs_dq_init(dir); | ||
2376 | error = dir->i_op->symlink(dir, dentry, oldname); | 2364 | error = dir->i_op->symlink(dir, dentry, oldname); |
2377 | if (!error) | 2365 | if (!error) |
2378 | fsnotify_create(dir, dentry); | 2366 | fsnotify_create(dir, dentry); |
@@ -2456,7 +2444,6 @@ int vfs_link(struct dentry *old_dentry, struct inode *dir, struct dentry *new_de | |||
2456 | return error; | 2444 | return error; |
2457 | 2445 | ||
2458 | mutex_lock(&inode->i_mutex); | 2446 | mutex_lock(&inode->i_mutex); |
2459 | vfs_dq_init(dir); | ||
2460 | error = dir->i_op->link(old_dentry, dir, new_dentry); | 2447 | error = dir->i_op->link(old_dentry, dir, new_dentry); |
2461 | mutex_unlock(&inode->i_mutex); | 2448 | mutex_unlock(&inode->i_mutex); |
2462 | if (!error) | 2449 | if (!error) |
@@ -2657,9 +2644,6 @@ int vfs_rename(struct inode *old_dir, struct dentry *old_dentry, | |||
2657 | if (!old_dir->i_op->rename) | 2644 | if (!old_dir->i_op->rename) |
2658 | return -EPERM; | 2645 | return -EPERM; |
2659 | 2646 | ||
2660 | vfs_dq_init(old_dir); | ||
2661 | vfs_dq_init(new_dir); | ||
2662 | |||
2663 | old_name = fsnotify_oldname_init(old_dentry->d_name.name); | 2647 | old_name = fsnotify_oldname_init(old_dentry->d_name.name); |
2664 | 2648 | ||
2665 | if (is_dir) | 2649 | if (is_dir) |