[This was backed out a couple of weeks ago on a suspect dbench
hang - that turned out to be unrelated, and was fixed in one
of Steve's recent checkins. For my reference, this is IRIX
bug #857478.]
Fix xfs_da_node_split handling of dir/attr buffers for filesystems built
with a directory block size larger than the filesystem (and hence attr)
blocksize. This does not affect filesystems built with default mkfs.xfs
parameters, and only hits when a large number of attributes are set on
an inode.
Date: Sun Oct 20 22:23:40 PDT 2002
Workarea: snort.melbourne.sgi.com:/home/nathans/pagebuf
The following file(s) were checked into:
bonnie.engr.sgi.com:/isms/slinx/2.4.x-xfs
Modid: 2.4.x-xfs:slinx:130577a
linux/fs/xfs/xfsidbg.c - 1.208
linux/fs/xfs/xfs_macros.c - 1.46
linux/fs/xfs/xfs_da_btree.c - 1.135
linux/fs/xfs/xfs_da_btree.h - 1.50
linux/fs/xfs/xfs_dir.c - 1.144
linux/fs/xfs/xfs_mount.h - 1.161
linux/fs/xfs/xfs_dir2_node.c - 1.28
linux/fs/xfs/xfs_attr.c - 1.98
linux/fs/xfs/xfs_dir2.c - 1.40
- Fix a problem in the dabuf (dir/attr buffer) layer which deals with
calculating when a block should be split in two. Previously there was
only one constant used in the test. When V2 directories have a block
size larger than the fs block size, the constant is too large for
extended attributes. So, replace this constant with two, and make the
dabuf code use the correct one based upon being used for attributes or
directories.
|