Eric Anderson wrote:
Ruslan Ermilov wrote:

On Wed, Mar 08, 2006 at 03:16:25AM -0500, Kris Kennaway wrote:
On Wed, Mar 08, 2006 at 09:06:32AM +0200, Ruslan Ermilov wrote:
On Wed, Mar 08, 2006 at 02:14:39AM +0000, Tor Egge wrote:
tegge       2006-03-08 02:14:39 UTC

  FreeBSD src repository

  Modified files:
    sys/ufs/ufs          ufs_lookup.c   Log:
Don't set IN_CHANGE and IN_UPDATE on inodes for potentially suspended
  file systems.  This could cause deadlocks when creating snapshots.
    Reviewed by:    jeff
    Revision  Changes    Path
  1.80      +0 -1      src/sys/ufs/ufs/ufs_lookup.c


Like for example "ls -l /filesystem/.snap" when "fsck -B" is in place?

Is that a deadlock, or just the process being suspended until fsck
finishes?


I think the only options we have to fix this is to either make the .snap directory 'hidden' (which is not a feature yet), or to possibly cache the inode information on parent directories containing snapshots, so when a fs is suspended or a snapshot is in progress, a stat of the parent directory of the snapshots' doesn't block until the snapshot finishes. There has been brief discussion on freebsd-fs@ about adding a 'hidden' flag (usable with chflags) to files and directories, and tools like ls, etc, that would normally stat each file/dir in a directory would ignore, unless a special option was used. That would not stop other tools doing stat calls from seeing it though, but I think most of the blocking happens when a user does an ls -al in the directory.


Eric





The only way to effectively avoid the problem would be to teach UFS to
completely ignore the '.snap' directory entry when doing a readdir and
lookup.  That is not the same as what is being discussed with having a
special hiiden hint flag.

Scott

_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to