diff -u linux-2.5.60/fs/ext3/xattr.c linux-2.5.60/fs/ext3/xattr.c --- linux-2.5.60/fs/ext3/xattr.c 2003-02-11 12:33:45.000000000 +0100 +++ linux-2.5.60/fs/ext3/xattr.c 2003-02-12 11:18:18.000000000 +0100 @@ -848,7 +848,7 @@ const void *value, size_t value_len, int flags) { handle_t *handle; - int error; + int error, error2; lock_kernel(); handle = ext3_journal_start(inode, EXT3_XATTR_TRANS_BLOCKS); @@ -857,10 +857,10 @@ else error = ext3_xattr_set_handle(handle, inode, name_index, name, value, value_len, flags); - ext3_journal_stop(handle, inode); + error2 = ext3_journal_stop(handle, inode); unlock_kernel(); - return error; + return error ? error : error2; } /*