xfs: use correct log reservation when handling ENOSPC in xfs_create
authorChristoph Hellwig <hch@infradead.org>
Wed, 9 Sep 2009 23:19:02 +0000 (18:19 -0500)
committerAlex Elder <aelder@sgi.com>
Wed, 9 Sep 2009 23:19:02 +0000 (18:19 -0500)
We added the ENOSPC handling patch in xfs_create just after it got mered
with xfs_mkdir.  Change the log reservation to the variable for either
the create or mkdir value so it does the right thing if get here for creating
a directory.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Alex Elder <aelder@sgi.com>
fs/xfs/xfs_vnodeops.c

index 03d3100559ac8c6b48dc4bd5fe4675710c4e0ac3..a434f287962d18588e0711110b8b758818b9ceee 100644 (file)
@@ -1471,8 +1471,8 @@ xfs_create(
        if (error == ENOSPC) {
                /* flush outstanding delalloc blocks and retry */
                xfs_flush_inodes(dp);
-               error = xfs_trans_reserve(tp, resblks, XFS_CREATE_LOG_RES(mp), 0,
-                       XFS_TRANS_PERM_LOG_RES, XFS_CREATE_LOG_COUNT);
+               error = xfs_trans_reserve(tp, resblks, log_res, 0,
+                               XFS_TRANS_PERM_LOG_RES, log_count);
        }
        if (error == ENOSPC) {
                /* No space at all so try a "no-allocation" reservation */