]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
logfs: Grow inode in delete path
authorJoern Engel <joern@logfs.org>
Fri, 5 Aug 2011 09:13:30 +0000 (11:13 +0200)
committerJoern Engel <joern@logfs.org>
Fri, 5 Aug 2011 09:13:30 +0000 (11:13 +0200)
Can be necessary if an inode gets deleted (through -ENOSPC) before being
written.  Might be better to move this into logfs_write_rec(), but for
now go with the stupid&safe patch.

Signed-off-by: Joern Engel <joern@logfs.org>
fs/logfs/readwrite.c

index d8d09380c7deafd2b27e10606ef2f951fb044083..6cc8d6205f29cc91edcd726d37a7a4e48f53c05f 100644 (file)
@@ -1570,11 +1570,15 @@ int logfs_write_buf(struct inode *inode, struct page *page, long flags)
 static int __logfs_delete(struct inode *inode, struct page *page)
 {
        long flags = WF_DELETE;
+       int err;
 
        inode->i_ctime = inode->i_mtime = CURRENT_TIME;
 
        if (page->index < I0_BLOCKS)
                return logfs_write_direct(inode, page, flags);
+       err = grow_inode(inode, page->index, 0);
+       if (err)
+               return err;
        return logfs_write_rec(inode, page, page->index, 0, flags);
 }