|| ||Jeff Layton <firstname.lastname@example.org> |
|| ||email@example.com |
|| ||[PATCH 00/13] cifs: implement proper hardlink handling (try #4) |
|| ||Wed, 27 May 2009 08:30:21 -0400|
|| ||Article, Thread
This set is the fourth respin of a patchset to fix the hardlink
detection and handling in CIFS. The significant changes from the last
1) fixed a bug in readdir where if an entry had an error we'd cause
the entire readdir to fail. It now properly handles this I think.
2) account for changes due to the addition of create-during-lookup
functionality. Nothing really major here.
This patchset passes the connectathon test suite with posix extensions
enabled and disabled and with cifsacl enabled. It also survived several
hours running under the LTP fsstress program.
This is a good first step I think, but there's still work to be done.
One thing that this patchset doesn't account for is the situation where
the inode number of a particular path has unexpectedly changed. Fixing
that will mean changing the the current cifs_get_inode_info[_unix]
interfaces to something different. The current code however doesn't
handle this properly either and this set shouldn't make that any worse
than it already is. That's a sufficiently big enough project that I
think it warrants a separate patchset. Once this one is in place, I'll
start work on fixing that.
At this point, I think these patches are ready to go into 2.6.31 when it
opens. While I think this patchset is bisectable from the standpoint of
building, bisecting in the middle of the series may be problematic. YMMV
in particular if you bisect in such a way that the readdir and
non-readdir codepaths are using different ways of getting inodes.
It may be better to merge some of these patches before committing so
that that's not a problem, but the current way this is broken up should
make it a little easier to review.
I think we want to be very careful to make this bisectable if at all
possible. That means not committing these out of order as well.
Christoph Hellwig (2):
cifs: reorganize get_cifs_acl
cifs: clean up set_cifs_acl interfaces
Jeff Layton (11):
cifs: have cifs_NTtimeToUnix take a little-endian arg
cifs: make cnvrtDosUnixTm take a little-endian args and an offset
cifs: rename cifs_iget to cifs_root_iget
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 | 200 +++++++------
fs/cifs/cifsfs.c | 3 +-
fs/cifs/cifsfs.h | 15 +-
fs/cifs/cifsglob.h | 28 ++-
fs/cifs/cifsproto.h | 21 +-
fs/cifs/cifssmb.c | 4 +-
fs/cifs/connect.c | 2 +
fs/cifs/dir.c | 22 +-
fs/cifs/file.c | 2 +-
fs/cifs/inode.c | 802 +++++++++++++++++++++------------------------------
fs/cifs/netmisc.c | 24 +-
fs/cifs/readdir.c | 565 ++++++++++++------------------------
12 files changed, 690 insertions(+), 998 deletions(-)
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to firstname.lastname@example.org
More majordomo info at http://vger.kernel.org/majordomo-info.html