]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - fs/ext3/inode.c
Merge tag 'v2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / fs / ext3 / inode.c
index a9580617edd24dc4b4e94df75265f1ce25cec8f1..ae94f6d949f526d04fc0e2dcb8983622eeab8fa0 100644 (file)
@@ -2145,13 +2145,15 @@ static void ext3_clear_blocks(handle_t *handle, struct inode *inode,
        if (try_to_extend_transaction(handle, inode)) {
                if (bh) {
                        BUFFER_TRACE(bh, "call ext3_journal_dirty_metadata");
-                       ext3_journal_dirty_metadata(handle, bh);
+                       if (ext3_journal_dirty_metadata(handle, bh))
+                               return;
                }
                ext3_mark_inode_dirty(handle, inode);
                truncate_restart_transaction(handle, inode);
                if (bh) {
                        BUFFER_TRACE(bh, "retaking write access");
-                       ext3_journal_get_write_access(handle, bh);
+                       if (ext3_journal_get_write_access(handle, bh))
+                               return;
                }
        }