[XFS] Catch log unmount failures.

Unmounting the log can fail. unlikely, but it can. Catch all the error
conditions an make sure it's propagated upwards.

SGI-PV: 980084
SGI-Modid: xfs-linux-melb:xfs-kern:30833a

Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: Niv Sardi <xaiki@sgi.com>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
This commit is contained in:
David Chinner 2008-04-10 12:24:38 +10:00 committed by Lachlan McIlroy
parent b911ca0472
commit 1bb7d6b5a8

View File

@ -697,7 +697,7 @@ xfs_log_unmount_write(xfs_mount_t *mp)
atomic_inc(&iclog->ic_refcnt); atomic_inc(&iclog->ic_refcnt);
spin_unlock(&log->l_icloglock); spin_unlock(&log->l_icloglock);
xlog_state_want_sync(log, iclog); xlog_state_want_sync(log, iclog);
(void) xlog_state_release_iclog(log, iclog); error = xlog_state_release_iclog(log, iclog);
spin_lock(&log->l_icloglock); spin_lock(&log->l_icloglock);
if (!(iclog->ic_state == XLOG_STATE_ACTIVE || if (!(iclog->ic_state == XLOG_STATE_ACTIVE ||
@ -736,7 +736,7 @@ xfs_log_unmount_write(xfs_mount_t *mp)
spin_unlock(&log->l_icloglock); spin_unlock(&log->l_icloglock);
xlog_state_want_sync(log, iclog); xlog_state_want_sync(log, iclog);
(void) xlog_state_release_iclog(log, iclog); error = xlog_state_release_iclog(log, iclog);
spin_lock(&log->l_icloglock); spin_lock(&log->l_icloglock);
@ -751,7 +751,7 @@ xfs_log_unmount_write(xfs_mount_t *mp)
} }
} }
return 0; return error;
} /* xfs_log_unmount_write */ } /* xfs_log_unmount_write */
/* /*