diff options
author | Evgeniy Dushistov <dushistov@mail.ru> | 2006-06-25 05:47:21 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-25 10:01:02 -0700 |
commit | 826843a347cc8fd596a4c73d3fbdf04a1f130b8a (patch) | |
tree | f9511e70a57bd2c6432bdbd8fa6957881121266b /fs/ufs/namei.c | |
parent | 6ef4d6bf86a82965896eaa1a189177239ec2bbab (diff) | |
download | blackbird-op-linux-826843a347cc8fd596a4c73d3fbdf04a1f130b8a.tar.gz blackbird-op-linux-826843a347cc8fd596a4c73d3fbdf04a1f130b8a.zip |
[PATCH] ufs: directory and page cache: install aops
This series of patches finished "bugs fixing" mentioned
here http://lkml.org/lkml/2006/1/31/275 .
The main bugs:
* for i in `seq 1 1000`; do touch $i; done - crash system
* mkdir create directory without "." and ".." entries
The suggested solution is work with page cache instead of straight work
with blocks. Such solution has following advantages
* reduce code size and its complexity
* some global locks go away
* fix bugs
The most part of code is stolen from ext2, because of it has similar
directory structure.
Patches testes with UFS1 and UFS2 file systems.
This patch installs i_mapping->a_ops for directory inodes and removes some
duplicated code.
Signed-off-by: Evgeniy Dushistov <dushistov@mail.ru>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs/ufs/namei.c')
-rw-r--r-- | fs/ufs/namei.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/ufs/namei.c b/fs/ufs/namei.c index 8d5f98a01c74..51f702700308 100644 --- a/fs/ufs/namei.c +++ b/fs/ufs/namei.c @@ -205,6 +205,7 @@ static int ufs_mkdir(struct inode * dir, struct dentry * dentry, int mode) inode->i_op = &ufs_dir_inode_operations; inode->i_fop = &ufs_dir_operations; + inode->i_mapping->a_ops = &ufs_aops; inode_inc_link_count(inode); |