summaryrefslogtreecommitdiff
path: root/ufs/pager.c
diff options
context:
space:
mode:
authorMichael I. Bushnell <mib@gnu.org>1995-05-02 15:59:06 +0000
committerMichael I. Bushnell <mib@gnu.org>1995-05-02 15:59:06 +0000
commit3bb45eb81e677b4c92cc328cd0e580bd32ccc663 (patch)
tree85e19e80655dcccbfb74ed86b50c5857eee7769a /ufs/pager.c
parentc7af45ba62d79db2ceb767dfec9fdc54f20ed409 (diff)
(pager_clear_user_data): Acquire pagerlistlock around modifications to
UPI->next/prevp list structure.
Diffstat (limited to 'ufs/pager.c')
-rw-r--r--ufs/pager.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/ufs/pager.c b/ufs/pager.c
index d41b792d..f403df64 100644
--- a/ufs/pager.c
+++ b/ufs/pager.c
@@ -1,5 +1,5 @@
/* Pager for ufs
- Copyright (C) 1994 Free Software Foundation
+ Copyright (C) 1994, 1995 Free Software Foundation
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
@@ -363,9 +363,11 @@ pager_clear_user_data (struct user_pager_info *upi)
upi->np->dn->fileinfo = 0;
spin_unlock (&node2pagelock);
diskfs_nrele_light (upi->np);
+ spin_lock (&pagerlistlock);
*upi->prevp = upi->next;
if (upi->next)
upi->next->prevp = upi->prevp;
+ spin_unlock (&pagerlistlock);
free (upi);
}