Re: [PATCH 2.6.19 5/5] fs: freeze_bdev with semaphore not mutex

From: Rafael J. Wysocki
Date: Sun Nov 12 2006 - 16:56:56 EST


Hi,

On Sunday, 12 November 2006 19:43, Pavel Machek wrote:
> Hi!
>
> > > Okay, so you claim that sys_sync can stall, waiting for administator?
> > >
> > > In such case we can simply do one sys_sync() before we start freezing
> > > userspace... or just more the only sys_sync() there. That way, admin
> > > has chance to unlock his system.
> >
> > Well, this is a different story.
> >
> > My point is that if we call sys_sync() _anyway_ before calling
> > freeze_filesystems(), then freeze_filesystems() is _safe_ (either the
> > sys_sync() blocks, or it doesn't in which case freeze_filesystems() won't
> > block either).
> >
> > This means, however, that we can leave the patch as is (well, with the minor
> > fix I have already posted), for now, because it doesn't make things worse a
> > bit, but:
> > (a) it prevents xfs from being corrupted and
>
> I'd really prefer it to be fixed by 'freezeable workqueues'. Can you
> point me into sources -- which xfs workqueues are problematic?

I think these:

http://www.linux-m32r.org/lxr/http/source/fs/xfs/linux-2.6/xfs_buf.c?a=x86_64#L1829

But then, there's also this one

http://www.linux-m32r.org/lxr/http/source/fs/reiserfs/journal.c?a=x86_64#L2837

and some others that I had no time to trace.

> (It would be nice to fix that for 2.6.19, and full bdev freezing looks
> intrusive to me).

IMHO changing __create_workqueue() will be even more intrusive.

> > (b) it prevents journaling filesystems in general from replaying journals
> > after a failing resume.
>
> I do not see b) as an useful goal.

Okay, let's forget it.

Greetings,
Rafael


--
You never change things by fighting the existing reality.
R. Buckminster Fuller
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/