[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3ED34739A4E85E4F894367D57617CDEFCA59786E@LAX-EX-MB2.datadirect.datadirectnet.com>
Date: Mon, 3 Jul 2017 01:16:15 +0000
From: Wang Shilong <wshilong@....com>
To: "miaoxie@...wei.com" <miaoxie@...wei.com>,
Wang Shilong <wangshilong1991@...il.com>,
"linux-ext4@...r.kernel.org" <linux-ext4@...r.kernel.org>
CC: "tytso@....edu" <tytso@....edu>, Li Xi <lixi@....com>,
"yi.zhang@...wei.com" <yi.zhang@...wei.com>,
"adilger@...ger.ca" <adilger@...ger.ca>,
Shuichi Ihara <sihara@....com>
Subject: RE: [PATCH 1/2] ext4, project: expand inode extra size if possible
________________________________________
From: Miao Xie [miaoxie@...wei.com]
Sent: Friday, June 30, 2017 16:48
To: Wang Shilong; linux-ext4@...r.kernel.org
Cc: tytso@....edu; Li Xi; yi.zhang@...wei.com; adilger@...ger.ca; Wang Shilong; Shuichi Ihara
Subject: Re: [PATCH 1/2] ext4, project: expand inode extra size if possible
on 2017/6/30 at 11:51, Wang Shilong wrote:
> when upgrading from old format, try to set project id
> to old file first time, it will return EOVERFLOW, but if
> that file is dirtied(touch etc), changing project id will
<...SNIP...>
ext4_expand_extra_isize should be invoked after ext4_reserve_inode_write.
And I think it is better to restructure ext4_expand_extra_isize by moving NO_EXPAND check,
nojournal check and journal credits extend into it, and then we just if i_projid is in
---->I agreed we could move NO_EXPAND check, but i don't think it good idea to move journal
credits extend to it, jbd2_extend_journal() might fail, and we'd better avoid it.
For changing projectid, we could know how many credits before start transaction..
the inode or not, if not, invoke ext4_expand_extra_isize. (don't forget to do cleanup for
ext4_mark_inode_dirty), And then we can remove many check in the above code.
---->what do you mean cleanup for ext4_mark_inode_dirty()? I supposed you mean don't
call ext4_mark_iloc_dirty() if extend fail? i think that is expected, even inode extend fail,
if ext4_mark_inode_dirty() is called, it means inode is dirtied already before we call the
function.
Thanks,
Shilong
Powered by blists - more mailing lists