Messages in this thread | | | Date | Tue, 16 Jun 2015 13:02:15 -0700 (PDT) | From | Hugh Dickins <> | Subject | Re: [PATCH] tmpfs: truncate at i_size |
| |
On Tue, 19 May 2015, Josef Bacik wrote:
> If we fallocate past i_size with KEEP_SIZE, extend the file to use some but not > all of this space, and then truncate(i_size) we won't trim the excess > preallocated space. We decided at LSF that we want to truncate the fallocated > bit past i_size when we truncate to i_size, which is what this patch does. > Thanks, > > Signed-off-by: Josef Bacik <jbacik@fb.com>
Sorry for the delay, it's been on my mind but only now I get to it. Yes, that was agreed at LSF, and I've checked that indeed tmpfs is out of line here: thank you for fixing it. But I do prefer your original more explicit description, so I'll send the patch to akpm now for v4.2, with that description instead (plus a reference to LSF).
Thanks, Hugh
> --- > mm/shmem.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/shmem.c b/mm/shmem.c > index de98137..089afde 100644 > --- a/mm/shmem.c > +++ b/mm/shmem.c > @@ -569,7 +569,7 @@ static int shmem_setattr(struct dentry *dentry, struct iattr *attr) > i_size_write(inode, newsize); > inode->i_ctime = inode->i_mtime = CURRENT_TIME; > } > - if (newsize < oldsize) { > + if (newsize <= oldsize) { > loff_t holebegin = round_up(newsize, PAGE_SIZE); > unmap_mapping_range(inode->i_mapping, holebegin, 0, 1); > shmem_truncate_range(inode, newsize, (loff_t)-1); > -- > 1.8.3.1
| |