Re: [PATCH v1 0/9] do not use s_dirt in ext4

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed 28-03-12 11:44:42, Artem Bityutskiy wrote:
> On Tue, 2012-03-27 at 22:14 +0200, Jan Kara wrote:
> > @@ -181,9 +181,22 @@ static int ext4_file_open(struct inode * inode, struct file * filp)
> >                 path.dentry = mnt->mnt_root;
> >                 cp = d_path(&path, buf, sizeof(buf));
> >                 if (!IS_ERR(cp)) {
> > +                       handle_t *handle;
> > +                       int err;
> > +
> > +                       handle = ext4_journal_start_sb(sb, 1);
> > +                       if (IS_ERR(handle))
> > +                               return PTR_ERR(handle);
> > +                       err = ext4_journal_get_write_access(handle,
> > +                                                           EXT4_SB(sb)->s_sbh);
> 
> Why do we need to bother with journal in this case - AFAIU, we update a
> single field, not critical, and we do not really need the journal for
> this - we can just call 'mark_buffer_dirty(sbi->s_sbh)' and let the SB
> be written out directly and asynchronously.
  Well, except that if someone is trying to modify the superblock via the
journal in parallel, the journalling layer will loudly complain about
buffer becoming dirty under it's hands... So there are only two ways you
can reasonably do this in ext3/ext4 - just modify the data (which is a bit
ugly but works), or do full journalling.

								Honza
-- 
Jan Kara <jack@xxxxxxx>
SUSE Labs, CR
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux