From: Anton Blanchard <anton@samba.org>

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);

_