From: Edward Shishkin <edward.shishkin@gmail.com>
To: intelfx@intelfx.name, reiserfs-devel@vger.kernel.org
Subject: Re: [PATCH] Adjust reiser4 for 3.15: replace truncate_inode_pages(..., 0) with truncate_inode_pages_final(...).
Date: Mon, 03 Oct 2016 16:29:06 +0200 [thread overview]
Message-ID: <57F26B32.7040807@gmail.com> (raw)
In-Reply-To: <1475218025.19471.1.camel@intelfx.name>
On 09/30/2016 08:47 AM, Ivan Shapovalov wrote:
> On 2016-09-30 at 09:43 +0300, Ivan Shapovalov wrote:
>> Upstream commit 91b0abe36a7b2b3b02d7500925a5f8455334f0e5
>> "mm + fs: store shadow entries in page cache".
>>
>> Moreover, the truncate_inode_pages(..., 0) in
>> delete_object_cryptcompress()
>> is not needed at all.
>>
>> Signed-off-by: Ivan Shapovalov <intelfx@intelfx.name>
>> ---
>> plugin/file/cryptcompress.c | 2 --
>> super_ops.c | 2 +-
>> 2 files changed, 1 insertion(+), 3 deletions(-)
>>
>> diff --git a/plugin/file/cryptcompress.c
>> b/plugin/file/cryptcompress.c
>> index 59d8df8..5433de9 100644
>> --- a/plugin/file/cryptcompress.c
>> +++ b/plugin/file/cryptcompress.c
>> @@ -3595,8 +3595,6 @@ int delete_object_cryptcompress(struct inode
>> *inode)
>> (unsigned long long)get_inode_oid(inode),
>> result);
>> }
>> - truncate_inode_pages(inode->i_mapping, 0);
>> - assert("edward-1487", pages_truncate_ok(inode, 0));
>> /* and remove stat data */
>> return reiser4_delete_object_common(inode);
>> }
>> diff --git a/super_ops.c b/super_ops.c
>> index 73c18f2..697580c 100644
>> --- a/super_ops.c
>> +++ b/super_ops.c
>> @@ -215,7 +215,7 @@ static void reiser4_evict_inode(struct inode
>> *inode)
>> fplug->delete_object(inode);
>> }
>>
>> - truncate_inode_pages(&inode->i_data, 0);
>> + truncate_inode_pages_final(&inode->i_data);
>> inode->i_blocks = 0;
>> clear_inode(inode);
>> reiser4_exit_context(ctx);
> BTW, this raises a question: in the ->evict_inode path, are we ever
> allowed to call plain truncate_inode_pages() (i. e. not *_final())?
Actually, I would like to see a kind of assertion 1487 instead:
everything should be already truncated at that point.
>
> The ->delete_object plugin methods do this as part of their logic,
> actually. At least the cryptcompress plugin calls
> truncate_inode_pages(..., new_size) at the end of
> prune_cryptcompress(), however I suspect that the regular file plugin
> also does this deep inside reiser4's guts.
File body is truncated item-by-item from right to left. For each item
its ->kill_hook() method is called. It is responsible for truncating
attached pages. Bodies of cryptcompress files are not connected:
there can be pages without "parent" items (in the case of holes), so
in addition we call truncate_inode_pages() in prune_cryptcompress()
to kill those pages.
Edward.
next prev parent reply other threads:[~2016-10-03 14:29 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-30 6:36 [PATCH] reiser4: missed patch in porting to 3.15 Ivan Shapovalov
2016-09-30 6:43 ` [PATCH] Adjust reiser4 for 3.15: replace truncate_inode_pages(..., 0) with truncate_inode_pages_final(...) Ivan Shapovalov
2016-09-30 6:47 ` Ivan Shapovalov
2016-10-03 14:29 ` Edward Shishkin [this message]
2016-10-03 14:40 ` Ivan Shapovalov
2016-10-03 19:45 ` Ivan Shapovalov
2016-10-04 15:44 ` Edward Shishkin
2016-10-03 14:08 ` Edward Shishkin
-- strict thread matches above, loose matches on Subject: below --
2015-02-13 12:49 Ivan Shapovalov
2015-02-13 14:59 ` Edward Shishkin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=57F26B32.7040807@gmail.com \
--to=edward.shishkin@gmail.com \
--cc=intelfx@intelfx.name \
--cc=reiserfs-devel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.