From: eeb Date: Wed, 7 May 2003 17:03:16 +0000 (+0000) Subject: * Updated ptlrpc_abort_reply() to not simply LBUG(). The current X-Git-Tag: v1_7_110~1^13~205 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=8f9a219e6a0a1b8884429b75a92213383ef88be6;p=fs%2Flustre-release.git * Updated ptlrpc_abort_reply() to not simply LBUG(). The current implementation has to poll for the SENT event at 1 second intervals, since the SENT callback cannot touch any state in the request. * Blindly wrapped all request flag updates in an IRQ spinlock (or just a spinlock if already at IRQ priority). My head hurt too much trying to determine whether it was safe to update unlocked, and we know this is safe. Maybe we should split out "owner" and "notifier" flag usage to separate words. --- diff --git a/lustre/liblustre/file.c b/lustre/liblustre/file.c index d656918..8344af5 100644 --- a/lustre/liblustre/file.c +++ b/lustre/liblustre/file.c @@ -407,7 +407,9 @@ static int llu_mdc_close(struct lustre_handle *mdc_conn, struct inode *inode) /* We held on to the request for replay until we saw a close for that * file. Now that we've closed it, it gets replayed on the basis of * its transno only. */ + spin_lock (&fd->fd_mds_och.och_req->rq_lock); fd->fd_mds_och.och_req->rq_replay = 0; + spin_unlock (&fd->fd_mds_och.och_req->rq_lock); if (fd->fd_mds_och.och_req->rq_transno) { /* This open created a file, so it needs replay as a