From: Anton Blanchard hugetlbfs is doing strange things with directory sizes. Al says there is no semantics for reported size of directories so we can remove this code. --- fs/hugetlbfs/inode.c | 6 ------ include/linux/hugetlb.h | 2 -- 2 files changed, 8 deletions(-) diff -puN fs/hugetlbfs/inode.c~hugetlbfs_remove_dirent fs/hugetlbfs/inode.c --- 25/fs/hugetlbfs/inode.c~hugetlbfs_remove_dirent 2004-01-21 11:00:29.000000000 -0800 +++ 25-akpm/fs/hugetlbfs/inode.c 2004-01-21 11:00:29.000000000 -0800 @@ -427,7 +427,6 @@ static int hugetlbfs_mknod(struct inode } inode = hugetlbfs_get_inode(dir->i_sb, current->fsuid, gid, mode, dev); if (inode) { - dir->i_size += PSEUDO_DIRENT_SIZE; dir->i_ctime = dir->i_mtime = CURRENT_TIME; d_instantiate(dentry, inode); dget(dentry); /* Extra count - pin the dentry in core */ @@ -472,7 +471,6 @@ static int hugetlbfs_symlink(struct inod } else iput(inode); } - dir->i_size += PSEUDO_DIRENT_SIZE; dir->i_ctime = dir->i_mtime = CURRENT_TIME; return error; @@ -509,7 +507,6 @@ static int hugetlbfs_link(struct dentry { struct inode *inode = old_dentry->d_inode; - dir->i_size += PSEUDO_DIRENT_SIZE; inode->i_ctime = dir->i_ctime = dir->i_mtime = CURRENT_TIME; inode->i_nlink++; atomic_inc(&inode->i_count); @@ -522,7 +519,6 @@ static int hugetlbfs_unlink(struct inode { struct inode *inode = dentry->d_inode; - dir->i_size -= PSEUDO_DIRENT_SIZE; inode->i_ctime = dir->i_ctime = dir->i_mtime = CURRENT_TIME; inode->i_nlink--; dput(dentry); @@ -556,8 +552,6 @@ static int hugetlbfs_rename(struct inode new_dir->i_nlink++; } - old_dir->i_size -= PSEUDO_DIRENT_SIZE; - new_dir->i_size += PSEUDO_DIRENT_SIZE; old_dir->i_ctime = old_dir->i_mtime = new_dir->i_ctime = new_dir->i_mtime = inode->i_ctime = CURRENT_TIME; return 0; diff -puN include/linux/hugetlb.h~hugetlbfs_remove_dirent include/linux/hugetlb.h --- 25/include/linux/hugetlb.h~hugetlbfs_remove_dirent 2004-01-21 11:00:29.000000000 -0800 +++ 25-akpm/include/linux/hugetlb.h 2004-01-21 11:00:29.000000000 -0800 @@ -95,8 +95,6 @@ static inline struct hugetlbfs_sb_info * return sb->s_fs_info; } -#define PSEUDO_DIRENT_SIZE 20 - extern struct file_operations hugetlbfs_file_operations; extern struct vm_operations_struct hugetlb_vm_ops; struct file *hugetlb_zero_setup(size_t); _