Re: [PATCH v3 1/1] vfs: iversion truncate bug fix

From: Mimi Zohar
Date: Thu Jan 05 2012 - 18:13:31 EST


On Thu, 2012-01-05 at 14:30 -0800, Andrew Morton wrote:
> On Thu, 05 Jan 2012 10:39:41 -0800
> James Bottomley <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx> wrote:
>
> > > > Please, go read Documentation/stable_kernel_rules.txt for how to
> > > > properly submit patches to the stable kernel tree. The information here
> > > > needs to be in the patch changelog itself, not in some random email
> > > > thread that will get lost instantly into my email-archive-from-hell
> > > > after I am done reading this.
> > > >
> > > > greg k-h
> > >
> > > Yes, I've read Documentation/stable_kernel_rules.txt and think this
> > > patch meets the criteria for being backported.
> > >
> > > As far as I'm aware, this patch hasn't been upstreamed yet and is
> > > waiting for someone, besides myself, to Ack it. Once Acked, either
> > > Dmitry or I can send a pull request with an updated patch description.
> > > Should this patch go in via the security tree?
> >
> > If it hasn't been upstreamed yet, just make sure you put
> >
> > cc: stable@xxxxxxxxxx
> >
> > In the signoffs of the patch you're sending upstream and the backport
> > will occur automatically when the patch is finally upstreamed.
>
> Mimi didn't write or send the patch.

Thanks for explaining it to everyone and upstreaming the patch.

Mimi

> This happily git-free maintainer simply goes in and edits the
> changelog. I do this very very frequently.
>
> Here's what I currently have. I plan to send this to Rip Van Viro.
>
>
>
>
> From: Dmitry Kasatkin <dmitry.kasatkin@xxxxxxxxx>
> Subject: vfs: increment iversion when a file is truncated
>
> When a file is truncated with truncate()/ftruncate() and then closed,
> iversion is not updated. This patch uses ATTR_SIZE flag as an indication
> to increment iversion.
>
> Mimi said:
>
> On fput(), i_version is used to detect and flag files that have changed
> and need to be re-measured in the IMA measurement policy. When a file
> is truncated with truncate()/ftruncate() and then closed, i_version is
> not updated. As a result, although the file has changed, it will not be
> re-measured and added to the IMA measurement list on subsequent access.
>
> Signed-off-by: Dmitry Kasatkin <dmitry.kasatkin@xxxxxxxxx>
> Acked-by: Mimi Zohar <zohar@xxxxxxxxxx>
> Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
> Cc: <stable@xxxxxxxxxxxxxxx>
> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> ---
>
> fs/attr.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff -puN fs/attr.c~vfs-increment-iversion-when-a-file-is-truncated fs/attr.c
> --- a/fs/attr.c~vfs-increment-iversion-when-a-file-is-truncated
> +++ a/fs/attr.c
> @@ -176,6 +176,11 @@ int notify_change(struct dentry * dentry
> return -EPERM;
> }
>
> + if ((ia_valid & ATTR_SIZE) && IS_I_VERSION(inode)) {
> + if (attr->ia_size != inode->i_size)
> + inode_inc_iversion(inode);
> + }
> +
> if ((ia_valid & ATTR_MODE)) {
> umode_t amode = attr->ia_mode;
> /* Flag setting protected by i_mutex */
> _
>


--
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/