public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
From: bnaujok@sgi.com (Barry Naujok)
To: sgi.bugs.xfs@engr.sgi.com
Cc: xfs@oss.sgi.com
Subject: TAKE 981521 - Return actual name for CI match for dentry cache
Date: Wed, 21 May 2008 13:44:49 +1000 (EST)	[thread overview]
Message-ID: <20080521034449.67F4758C4C29@chook.melbourne.sgi.com> (raw)

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>


Date:  Wed May 21 13:44:00 AEST 2008
Workarea:  chook.melbourne.sgi.com:/home/bnaujok/isms/2.6.x-xfs
Inspected by:  hch@infradead.org

The following file(s) were checked into:
  longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb


Modid:  xfs-linux-melb:xfs-kern:31208a
fs/xfs/xfs_da_btree.h - 1.70 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_da_btree.h.diff?r1=text&tr1=1.70&r2=text&tr2=1.69&f=h
	- Add a CI_LOOKUP args flag

fs/xfs/xfs_vnodeops.c - 1.760 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vnodeops.c.diff?r1=text&tr1=1.760&r2=text&tr2=1.759&f=h
	- Add lookup support for returning actual case-preserved name

fs/xfs/xfs_dir2_block.c - 1.62 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_dir2_block.c.diff?r1=text&tr1=1.62&r2=text&tr2=1.61&f=h
	- Add lookup support for returning actual case-preserved name

fs/xfs/xfs_dir2_sf.c - 1.54 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_dir2_sf.c.diff?r1=text&tr1=1.54&r2=text&tr2=1.53&f=h
	- Add lookup support for returning actual case-preserved name

fs/xfs/xfs_dir2_leaf.c - 1.64 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_dir2_leaf.c.diff?r1=text&tr1=1.64&r2=text&tr2=1.63&f=h
	- Add lookup support for returning actual case-preserved name

fs/xfs/xfs_dir2_node.c - 1.64 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_dir2_node.c.diff?r1=text&tr1=1.64&r2=text&tr2=1.63&f=h
	- Add lookup support for returning actual case-preserved name

fs/xfs/xfs_dir2.h - 1.23 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_dir2.h.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h
	- Add lookup support for returning actual case-preserved name

fs/xfs/xfs_dir2.c - 1.67 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_dir2.c.diff?r1=text&tr1=1.67&r2=text&tr2=1.66&f=h
	- Add lookup support for returning actual case-preserved name

fs/xfs/linux-2.6/xfs_iops.c - 1.286 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_iops.c.diff?r1=text&tr1=1.286&r2=text&tr2=1.285&f=h
	- Add xfs_vn_ci_lookup function for CI mode

fs/xfs/linux-2.6/xfs_iops.h - 1.33 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_iops.h.diff?r1=text&tr1=1.33&r2=text&tr2=1.32&f=h
	- Export CI inode ops vector

fs/xfs/linux-2.6/xfs_export.c - 1.24 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_export.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h
	- Add aextra xfs_lookup paramater (NULL)

fs/xfs/xfs_vnodeops.h - 1.17 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vnodeops.h.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h
	- Add lookup support for returning actual case-preserved name

             reply	other threads:[~2008-05-21  3:44 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-21  3:44 Barry Naujok [this message]
2008-05-21  7:36 ` TAKE 981521 - Return actual name for CI match for dentry cache Christoph Hellwig
2008-05-21  7:40   ` Barry Naujok

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080521034449.67F4758C4C29@chook.melbourne.sgi.com \
    --to=bnaujok@sgi.com \
    --cc=sgi.bugs.xfs@engr.sgi.com \
    --cc=xfs@oss.sgi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox