aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoern Engel <joern@logfs.org>2011-08-05 05:13:30 -0400
committerPrasad Joshi <prasadjoshi.linux@gmail.com>2012-01-28 01:13:07 -0500
commitbbe01387129f76fa4bec17904eb14c4bdc3c179f (patch)
tree7524e5c127da68f483221183ffb0ae841ebb1e6e
parent1bcceaff8cbe5e5698ccf1015c9a938aa72718c4 (diff)
logfs: Grow inode in delete path
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>
-rw-r--r--fs/logfs/readwrite.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/logfs/readwrite.c b/fs/logfs/readwrite.c
index 88284c67ba97..4153e65b0148 100644
--- a/fs/logfs/readwrite.c
+++ b/fs/logfs/readwrite.c
@@ -1576,11 +1576,15 @@ int logfs_write_buf(struct inode *inode, struct page *page, long flags)
1576static int __logfs_delete(struct inode *inode, struct page *page) 1576static int __logfs_delete(struct inode *inode, struct page *page)
1577{ 1577{
1578 long flags = WF_DELETE; 1578 long flags = WF_DELETE;
1579 int err;
1579 1580
1580 inode->i_ctime = inode->i_mtime = CURRENT_TIME; 1581 inode->i_ctime = inode->i_mtime = CURRENT_TIME;
1581 1582
1582 if (page->index < I0_BLOCKS) 1583 if (page->index < I0_BLOCKS)
1583 return logfs_write_direct(inode, page, flags); 1584 return logfs_write_direct(inode, page, flags);
1585 err = grow_inode(inode, page->index, 0);
1586 if (err)
1587 return err;
1584 return logfs_write_rec(inode, page, page->index, 0, flags); 1588 return logfs_write_rec(inode, page, page->index, 0, flags);
1585} 1589}
1586 1590