cvs commit: src/sys/ufs/ufs ufs_lookup.c
Eric Anderson
anderson at centtech.com
Wed Mar 8 10:19:05 PST 2006
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
--
------------------------------------------------------------------------
Eric Anderson Sr. Systems Administrator Centaur Technology
Anything that works is better than anything that doesn't.
------------------------------------------------------------------------
More information about the cvs-src
mailing list