From 8f9a219e6a0a1b8884429b75a92213383ef88be6 Mon Sep 17 00:00:00 2001 From: eeb Date: Wed, 7 May 2003 17:03:16 +0000 Subject: [PATCH] * 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. --- lustre/liblustre/file.c | 2 ++ 1 file changed, 2 insertions(+) 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 -- 1.8.3.1