|From:||Jeff Layton <email@example.com>|
|Subject:||[PATCH 00/13] cifs: implement proper hardlink handling (try #4)|
|Date:||Wed, 27 May 2009 08:30:21 -0400|
This set is the fourth respin of a patchset to fix the hardlink detection and handling in CIFS. The significant changes from the last set are: 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
Copyright © 2009, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds