block_truncate_page may fail under certain circumstances, so its result should be checked.
Signed-off-by: Chengyu Song <cson...@gatech.edu> --- fs/ufs/truncate.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/fs/ufs/truncate.c b/fs/ufs/truncate.c index f04f89f..8b41f07 100644 --- a/fs/ufs/truncate.c +++ b/fs/ufs/truncate.c @@ -464,7 +464,12 @@ int ufs_truncate(struct inode *inode, loff_t old_i_size) goto out; } - block_truncate_page(inode->i_mapping, inode->i_size, ufs_getfrag_block); + err = block_truncate_page(inode->i_mapping, inode->i_size, ufs_getfrag_block); + + if (err) { + i_size_write(inode, old_i_size); + goto out; + } while (1) { retry = ufs_trunc_direct(inode); -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/