All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff Layton <jlayton@redhat.com>
To: linux-cifs-client@lists.samba.org
Cc: linux-fsdevel@vger.kernel.org
Subject: [PATCH 00/13] cifs: implement proper hardlink handling (try #4)
Date: Wed, 27 May 2009 08:30:21 -0400	[thread overview]
Message-ID: <1243427434-6498-1-git-send-email-jlayton@redhat.com> (raw)

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(-)


             reply	other threads:[~2009-05-27 12:30 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-27 12:30 Jeff Layton [this message]
2009-05-27 12:30 ` [PATCH 01/13] cifs: have cifs_NTtimeToUnix take a little-endian arg Jeff Layton
2009-05-27 12:30 ` [PATCH 02/13] cifs: make cnvrtDosUnixTm take a little-endian args and an offset Jeff Layton
2009-05-27 12:30 ` [PATCH 03/13] cifs: reorganize get_cifs_acl Jeff Layton
2009-05-27 12:30 ` [PATCH 04/13] cifs: clean up set_cifs_acl interfaces Jeff Layton
2009-05-27 12:30 ` [PATCH 05/13] cifs: rename cifs_iget to cifs_root_iget Jeff Layton
2009-05-27 12:30 ` [PATCH 06/13] cifs: add new cifs_iget function and convert unix codepath to use it Jeff Layton
2009-05-27 13:23   ` Christoph Hellwig
2009-05-27 12:30 ` [PATCH 07/13] cifs: convert posix readdir codepath to use cifs_iget Jeff Layton
2009-05-27 13:36   ` Christoph Hellwig
2009-05-27 13:42     ` Jeff Layton
2009-05-27 12:30 ` [PATCH 08/13] cifs: convert cifs_get_inode_info " Jeff Layton
2009-05-27 13:40   ` Christoph Hellwig
2009-05-27 14:13     ` Jeff Layton
2009-05-27 12:30 ` [PATCH 09/13] cifs: convert non-posix readdir codepath " Jeff Layton
2009-05-27 13:44   ` Christoph Hellwig
2009-05-27 12:30 ` [PATCH 10/13] cifs: remove cifs_new_inode Jeff Layton
2009-05-27 13:45   ` Christoph Hellwig
2009-05-27 12:30 ` [PATCH 11/13] cifs: make serverino the default when mounting Jeff Layton
2009-05-27 12:30 ` [PATCH 12/13] cifs: remove cifsInodeInfo->inUse counter Jeff Layton
2009-05-27 13:45   ` Christoph Hellwig
2009-05-27 12:30 ` [PATCH 13/13] cifs: remove "hardlink detection" from cifs_rename Jeff Layton

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=1243427434-6498-1-git-send-email-jlayton@redhat.com \
    --to=jlayton@redhat.com \
    --cc=linux-cifs-client@lists.samba.org \
    --cc=linux-fsdevel@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.