diff options
author | Joern Engel <joern@logfs.org> | 2011-08-05 05:13:30 -0400 |
---|---|---|
committer | Prasad Joshi <prasadjoshi.linux@gmail.com> | 2012-01-28 01:13:07 -0500 |
commit | bbe01387129f76fa4bec17904eb14c4bdc3c179f (patch) | |
tree | 7524e5c127da68f483221183ffb0ae841ebb1e6e /fs/logfs | |
parent | 1bcceaff8cbe5e5698ccf1015c9a938aa72718c4 (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>
Diffstat (limited to 'fs/logfs')
-rw-r--r-- | fs/logfs/readwrite.c | 4 |
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) | |||
1576 | static int __logfs_delete(struct inode *inode, struct page *page) | 1576 | static 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 | ||