Date: Thu, 9 Mar 2006 13:09:40 -0500 From: Brian Fundakowski Feldman <green@freebsd.org> To: Eric Anderson <anderson@centtech.com> Cc: src-committers@freebsd.org, cvs-src@freebsd.org, cvs-all@freebsd.org, Ruslan Ermilov <ru@freebsd.org>, Kris Kennaway <kris@obsecurity.org>, Tor Egge <tegge@freebsd.org> Subject: Re: cvs commit: src/sys/ufs/ufs ufs_lookup.c Message-ID: <20060309180940.GD7835@green.homeunix.org> In-Reply-To: <440F1346.10109@centtech.com> References: <200603080214.k282EdBH054091@repoman.freebsd.org> <20060308070632.GA52377@ip.net.ua> <20060308081625.GA55281@xor.obsecurity.org> <20060308104000.GC52377@ip.net.ua> <440F1346.10109@centtech.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Mar 08, 2006 at 11:24:22AM -0600, 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. That's the same reason I don't mount random stuff onto the root directory. Everything that walks the filesystem can block way too easily (and inadvertently), and using /disk (or a convention like OS X's /Volumes) circumvents most of these problems. Having one per-mount is a little ugly, but /mnt/.metadata/snapshots isn't really THAT much worse. -- Brian Fundakowski Feldman \'[ FreeBSD ]''''''''''\ <> green@FreeBSD.org \ The Power to Serve! \ Opinions expressed are my own. \,,,,,,,,,,,,,,,,,,,,,,\
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060309180940.GD7835>