Hi Sergei, > On 24 Mar 2015, at 04:52, Sergei Antonov <saproj@xxxxxxxxx> wrote: > > v1->v2 > * Description clarified. > > Fix a bug which is reproduced as follows. Create a file: > echo abc > test_file > Try to expand the file beyond available space: > truncate --size=<size exceeding available space> test_file > Since HFS+ does not support file size > allocated size, truncate should fail. > However, it ends successfully. The driver returns success despite having been > unable to allocate the requested space for the file. Also filesystem check finds > an error: > Checking catalog file. > Incorrect size for file test_file > (It should be 469094400 instead of 1000000000) > > Add a piece of code analogous to code in the fat driver. > Now a proper error is returned and filesystem remains consistent. Your patch makes sense and looks good. Reviewed-by: Anton Altaparmakov <anton@xxxxxxxxxx> Best regards, Anton > Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > Cc: Vyacheslav Dubeyko <slava@xxxxxxxxxxx> > Cc: Hin-Tak Leung <htl10@xxxxxxxxxxxxxxxxxxxxx> > Cc: Anton Altaparmakov <aia21@xxxxxxxxx> > Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx> > Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx> > Cc: Sougata Santra <sougata@xxxxxxxxxx> > Signed-off-by: Sergei Antonov <saproj@xxxxxxxxx> > --- > fs/hfsplus/inode.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/fs/hfsplus/inode.c b/fs/hfsplus/inode.c > index 0cf786f..7691cc1 100644 > --- a/fs/hfsplus/inode.c > +++ b/fs/hfsplus/inode.c > @@ -254,6 +254,12 @@ static int hfsplus_setattr(struct dentry *dentry, struct iattr *attr) > if ((attr->ia_valid & ATTR_SIZE) && > attr->ia_size != i_size_read(inode)) { > inode_dio_wait(inode); > + if (attr->ia_size > inode->i_size) { > + error = generic_cont_expand_simple(inode, > + attr->ia_size); > + if (error) > + return error; > + } > truncate_setsize(inode, attr->ia_size); > hfsplus_file_truncate(inode); > } > -- > 2.1.2 -- Anton Altaparmakov <anton at tuxera.com> (replace at with @) Lead in File System Development, Tuxera Inc., http://www.tuxera.com/ Linux NTFS maintainer -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html