Re: [PATCH v2 1/7] Adding support to freeze and unfreeze a journal
From: Surbhi Palande <hidden>
Date: 2012-01-10 21:55:17
Also in:
linux-ext4, lkml
quoted
Hrm let me think through this a little more; we actually do: t16) ext4_journal_start() t17) ext4_journal_start_sb() t18) handle = ext4_journal_current_handle(); t19) if (!handle) vfs_check_frozen() t20) ... jbd2_journal_start()Ah, right. I forgot.quoted
So actually we *do* block new handles, but let *existing* ones continue (see commits 6b0310fbf087ad6e9e3b8392adca97cd77184084 and be4f27d324e8ddd57cc0d4d604fe85ee0425cba9) So your assertion that a new handle is started is incorrect in general, isn't it? So then does the fix seem necessary? Or, at least, in the fashion below - maybe we need to just make sure all started handles complete before the unlock_updates? Or am I missing something...?Well, the problem with running operations and freezing is more fundamental I believe. See my email http://marc.info/?l=linux-fsdevel&m=132585911925796&w=2 So I believe we'll need some better exclusion mechanism already in VFS. Honza
If all the write operations were journaled, then this patch would not allow ext4 filesystem to have any dirty data after its frozen. (as journal_start() would block). I think the only one candidate that creates dirty data without calling ext4_journal_start() is mmapped? Regards, Surbhi.