diff options
author | Evgeniy Dushistov <dushistov@mail.ru> | 2006-06-25 08:47:22 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-25 13:01:02 -0400 |
commit | b71034e5e67d1577424cebe7bbb7d0ce134a4cd8 (patch) | |
tree | 4e4ffe95db731bbdc81d086d2b4462b3ab5867c2 /include/linux | |
parent | 826843a347cc8fd596a4c73d3fbdf04a1f130b8a (diff) |
[PATCH] ufs: directory and page cache: from blocks to pages
Change function in fs/ufs/dir.c and fs/ufs/namei.c to work with pages
instead of straight work with blocks. It fixed such bugs:
* for i in `seq 1 1000`; do touch $i; done - crash system
* mkdir create directory without "." and ".." entries
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 'include/linux')
-rw-r--r-- | include/linux/ufs_fs.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/include/linux/ufs_fs.h b/include/linux/ufs_fs.h index ed5053f5cd71..9d2b519700e7 100644 --- a/include/linux/ufs_fs.h +++ b/include/linux/ufs_fs.h | |||
@@ -887,11 +887,12 @@ extern struct inode_operations ufs_dir_inode_operations; | |||
887 | extern int ufs_add_link (struct dentry *, struct inode *); | 887 | extern int ufs_add_link (struct dentry *, struct inode *); |
888 | extern ino_t ufs_inode_by_name(struct inode *, struct dentry *); | 888 | extern ino_t ufs_inode_by_name(struct inode *, struct dentry *); |
889 | extern int ufs_make_empty(struct inode *, struct inode *); | 889 | extern int ufs_make_empty(struct inode *, struct inode *); |
890 | extern struct ufs_dir_entry * ufs_find_entry (struct dentry *, struct buffer_head **); | 890 | extern struct ufs_dir_entry *ufs_find_entry(struct inode *, struct dentry *, struct page **); |
891 | extern int ufs_delete_entry (struct inode *, struct ufs_dir_entry *, struct buffer_head *); | 891 | extern int ufs_delete_entry(struct inode *, struct ufs_dir_entry *, struct page *); |
892 | extern int ufs_empty_dir (struct inode *); | 892 | extern int ufs_empty_dir (struct inode *); |
893 | extern struct ufs_dir_entry * ufs_dotdot (struct inode *, struct buffer_head **); | 893 | extern struct ufs_dir_entry *ufs_dotdot(struct inode *, struct page **); |
894 | extern void ufs_set_link(struct inode *, struct ufs_dir_entry *, struct buffer_head *, struct inode *); | 894 | extern void ufs_set_link(struct inode *dir, struct ufs_dir_entry *de, |
895 | struct page *page, struct inode *inode); | ||
895 | 896 | ||
896 | /* file.c */ | 897 | /* file.c */ |
897 | extern struct inode_operations ufs_file_inode_operations; | 898 | extern struct inode_operations ufs_file_inode_operations; |