Prev: [PATCH 3/7] vfs: do not allow inode_setattr() to fail after vfs_dq_transfer()
Next: [PATCH] firewire: core: fix an information leak
From: Dmitry Monakhov on 19 Feb 2010 15:00 After we updated i_disk_size and stop the journal it is too late for error handling from inode_setattr(). Since inode_change_ok() is now responsible for all necessery checks we may call __inode_setattr() which can not fail. Signed-off-by: Dmitry Monakhov <dmonakhov(a)openvz.org> --- fs/ext3/inode.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff --git a/fs/ext3/inode.c b/fs/ext3/inode.c index 455e6e6..196aee3 100644 --- a/fs/ext3/inode.c +++ b/fs/ext3/inode.c @@ -3184,8 +3184,11 @@ int ext3_setattr(struct dentry *dentry, struct iattr *attr) error = rc; ext3_journal_stop(handle); } - - rc = inode_setattr(inode, attr); + /* + * All necessery check already done in inode_check_ok(), + * it is safe to use nofail version here. + */ + __inode_setattr(inode, attr); if (!rc && (ia_valid & ATTR_MODE)) rc = ext3_acl_chmod(inode); -- 1.6.6 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |