CVS log for xfs-linux-nodel/xfs_dir2_sf.c

[BACK] Up to [Development] / xfs-linux-nodel

Request diff between arbitrary revisions


Default branch: MAIN
Current tag: HEAD


Revision 1.54 / (download) - annotate - [select for diffs], Wed May 21 06:13:08 2008 UTC (9 years, 5 months ago) by bnaujok.longdrop.melbourne.sgi.com
Branch: MAIN
CVS Tags: HEAD
Changes since 1.53: +10 -7 lines
Diff to previous 1.53 (colored)

Return case-insensitive match for dentry cache

This implements the code to store the actual filename found
during a lookup in the dentry cache and to avoid multiple entries
in the dcache pointing to the same inode.

To avoid polluting the dcache, we implement a new directory inode
operations for lookup. xfs_vn_ci_lookup() stores the correct case
name in the dcache.

The "actual name" is only allocated and returned for a case-
insensitive match and not an actual match.

Another unusual interaction with the dcache is not storing
negative dentries like other filesystems doing a d_add(dentry, NULL)
when an ENOENT is returned. During the VFS lookup, if a dentry
returned has no inode, dput is called and ENOENT is returned.
By not doing a d_add, this actually removes it completely from
the dcache to be reused. create/rename have to be modified to
support unhashed dentries being passed in.

Signed-off-by: Barry Naujok <bnaujok@sgi.com>
Merge of xfs-linux-melb:xfs-kern:31208a by kenmcd.

  Add lookup support for returning actual case-preserved name

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>