linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/13] cifs: implement proper hardlink detection
@ 2009-05-11 20:24 Jeff Layton
  2009-05-11 20:24 ` [PATCH 01/13] cifs: have cifs_NTtimeToUnix take a little-endian arg Jeff Layton
                   ` (12 more replies)
  0 siblings, 13 replies; 22+ messages in thread
From: Jeff Layton @ 2009-05-11 20:24 UTC (permalink / raw)
  To: linux-cifs-client; +Cc: linux-fsdevel

This is a second pass at a patchset to implement proper hardlink
handling in CIFS. The first set was posted a little more than a month
ago and only implemented this for mounts with posix extensions. This
patchset should also implement it for non-posix mounts, as long as the
server is capable of reporting uniqueid's.

The idea here is to add a new cifs_fattr struct that acts as a container
for file attributes returned by the server. Each "dialect" has a
translation routine that converts the info returned by the server to
this container.

This approach allows us to use iget5_locked get references to inodes,
which allows us to identify hardlinks at inode instantiation time. It
also results in around a 250 line reduction in code. This is mostly due
to the fact that the patchset eliminates a lot of cut-and-paste code
duplication and some hardlink handling hackery that should no longer be
needed.

The set should be bisectable if committed in order, but I've not done
any real testing on anything but the complete set. I've also only tested
it with the most commonly used options (posix extensions and nounix).
The less commonly traveled codepaths also need to be tested (cifsacl,
sfu, etc).

I see this as 2.6.31 material.

Comments and suggestions appreciated.

Jeff Layton (13):
  cifs: have cifs_NTtimeToUnix take a little-endian arg
  cifs: make cnvrtDosUnixTm take a little-endian args and an offset
  cifs: allow get_cifs_acl to be called without an inode
  cifs: rename cifs_iget to cifs_root_iget
  cifs: add new cifs_fattr struct for holding cifs inode attributes in
    common way
  cifs: add new cifs_iget function and convert unix codepath to use it
  cifs: convert posix readdir codepath to use cifs_iget
  cifs: convert cifs_get_inode_info to use cifs_iget
  cifs: convert non-posix readdir codepath to use cifs_iget
  cifs: remove cifs_new_inode
  cifs: make serverino the default when mounting
  cifs: remove cifsInodeInfo->inUse counter
  cifs: remove "hardlink detection" from cifs_rename

 fs/cifs/cifsacl.c   |   50 ++--
 fs/cifs/cifsfs.c    |    3 +-
 fs/cifs/cifsfs.h    |   15 +-
 fs/cifs/cifsglob.h  |   29 ++-
 fs/cifs/cifsproto.h |   19 +-
 fs/cifs/cifssmb.c   |    4 +-
 fs/cifs/connect.c   |    2 +
 fs/cifs/dir.c       |   25 +-
 fs/cifs/file.c      |    2 +-
 fs/cifs/inode.c     |  811 ++++++++++++++++++++++-----------------------------
 fs/cifs/netmisc.c   |   24 +-
 fs/cifs/readdir.c   |  571 +++++++++++++------------------------
 12 files changed, 649 insertions(+), 906 deletions(-)


^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2009-05-13 11:02 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-05-11 20:24 [PATCH 00/13] cifs: implement proper hardlink detection Jeff Layton
2009-05-11 20:24 ` [PATCH 01/13] cifs: have cifs_NTtimeToUnix take a little-endian arg Jeff Layton
2009-05-11 20:26   ` Christoph Hellwig
2009-05-11 20:24 ` [PATCH 02/13] cifs: make cnvrtDosUnixTm take a little-endian args and an offset Jeff Layton
2009-05-11 20:27   ` Christoph Hellwig
2009-05-11 20:24 ` [PATCH 03/13] cifs: allow get_cifs_acl to be called without an inode Jeff Layton
2009-05-11 20:56   ` Christoph Hellwig
2009-05-11 21:03     ` Jeff Layton
2009-05-13  9:09       ` Christoph Hellwig
2009-05-13 11:02         ` Jeff Layton
2009-05-11 20:24 ` [PATCH 04/13] cifs: rename cifs_iget to cifs_root_iget Jeff Layton
2009-05-11 20:24 ` [PATCH 05/13] cifs: add new cifs_fattr struct for holding cifs inode attributes in common way Jeff Layton
2009-05-11 21:01   ` Christoph Hellwig
2009-05-11 20:24 ` [PATCH 06/13] cifs: add new cifs_iget function and convert unix codepath to use it Jeff Layton
2009-05-11 21:06   ` Christoph Hellwig
2009-05-11 20:24 ` [PATCH 07/13] cifs: convert posix readdir codepath to use cifs_iget Jeff Layton
2009-05-11 20:24 ` [PATCH 08/13] cifs: convert cifs_get_inode_info " Jeff Layton
2009-05-11 20:24 ` [PATCH 09/13] cifs: convert non-posix readdir codepath " Jeff Layton
2009-05-11 20:24 ` [PATCH 10/13] cifs: remove cifs_new_inode Jeff Layton
2009-05-11 20:24 ` [PATCH 11/13] cifs: make serverino the default when mounting Jeff Layton
2009-05-11 20:24 ` [PATCH 12/13] cifs: remove cifsInodeInfo->inUse counter Jeff Layton
2009-05-11 20:24 ` [PATCH 13/13] cifs: remove "hardlink detection" from cifs_rename Jeff Layton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).