* [RFC][PATCH] ext2: fix a block leak
@ 2018-05-18 0:06 Al Viro
2018-05-23 11:58 ` Jan Kara
0 siblings, 1 reply; 3+ messages in thread
From: Al Viro @ 2018-05-18 0:06 UTC (permalink / raw)
To: linux-fsdevel
open file, unlink it, then use ioctl(2) to make it immutable or
append only. Now close it and watch the blocks *not* freed...
Immutable/append-only checks belong in ->setattr().
Note: the bug is old and backport to anything prior to 737f2e93b972
("ext2: convert to use the new truncate convention") will need
these checks lifted into ext2_setattr().
Cc: stable@kernel.org
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
---
diff --git a/fs/ext2/inode.c b/fs/ext2/inode.c
index 1e01fabef130..71635909df3b 100644
--- a/fs/ext2/inode.c
+++ b/fs/ext2/inode.c
@@ -1264,21 +1264,11 @@ static void __ext2_truncate_blocks(struct inode *inode, loff_t offset)
static void ext2_truncate_blocks(struct inode *inode, loff_t offset)
{
- /*
- * XXX: it seems like a bug here that we don't allow
- * IS_APPEND inode to have blocks-past-i_size trimmed off.
- * review and fix this.
- *
- * Also would be nice to be able to handle IO errors and such,
- * but that's probably too much to ask.
- */
if (!(S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) ||
S_ISLNK(inode->i_mode)))
return;
if (ext2_inode_is_fast_symlink(inode))
return;
- if (IS_APPEND(inode) || IS_IMMUTABLE(inode))
- return;
dax_sem_down_write(EXT2_I(inode));
__ext2_truncate_blocks(inode, offset);
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [RFC][PATCH] ext2: fix a block leak
2018-05-18 0:06 [RFC][PATCH] ext2: fix a block leak Al Viro
@ 2018-05-23 11:58 ` Jan Kara
2018-05-23 14:24 ` Jan Kara
0 siblings, 1 reply; 3+ messages in thread
From: Jan Kara @ 2018-05-23 11:58 UTC (permalink / raw)
To: Al Viro; +Cc: linux-fsdevel
On Fri 18-05-18 01:06:25, Al Viro wrote:
> open file, unlink it, then use ioctl(2) to make it immutable or
> append only. Now close it and watch the blocks *not* freed...
>
> Immutable/append-only checks belong in ->setattr().
> Note: the bug is old and backport to anything prior to 737f2e93b972
> ("ext2: convert to use the new truncate convention") will need
> these checks lifted into ext2_setattr().
>
> Cc: stable@kernel.org
> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Sorry, I've been busy with other stuff after LSF/MM and then forgot about
this. Thanks for the patch! I've added the patch to my tree.
Honza
--
Jan Kara <jack@suse.com>
SUSE Labs, CR
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [RFC][PATCH] ext2: fix a block leak
2018-05-23 11:58 ` Jan Kara
@ 2018-05-23 14:24 ` Jan Kara
0 siblings, 0 replies; 3+ messages in thread
From: Jan Kara @ 2018-05-23 14:24 UTC (permalink / raw)
To: Al Viro; +Cc: linux-fsdevel
On Wed 23-05-18 13:58:24, Jan Kara wrote:
> On Fri 18-05-18 01:06:25, Al Viro wrote:
> > open file, unlink it, then use ioctl(2) to make it immutable or
> > append only. Now close it and watch the blocks *not* freed...
> >
> > Immutable/append-only checks belong in ->setattr().
> > Note: the bug is old and backport to anything prior to 737f2e93b972
> > ("ext2: convert to use the new truncate convention") will need
> > these checks lifted into ext2_setattr().
> >
> > Cc: stable@kernel.org
> > Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
>
> Sorry, I've been busy with other stuff after LSF/MM and then forgot about
> this. Thanks for the patch! I've added the patch to my tree.
Bah, and now I see (thanks Amir for the notice) you've already pushed it to
Linus. Sorry for the noise.
Honza
--
Jan Kara <jack@suse.com>
SUSE Labs, CR
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-05-23 14:24 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-18 0:06 [RFC][PATCH] ext2: fix a block leak Al Viro
2018-05-23 11:58 ` Jan Kara
2018-05-23 14:24 ` Jan Kara
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).