From: Nickolai Zeldovich Date: Fri, 8 Feb 2002 07:05:34 +0000 (+0000) Subject: Properly AFS_GUNLOCK() when returning an error after having previously X-Git-Tag: openafs-devel-1_3_0~11 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=ebcef806960b3507d4de6edfd59a89c37b6ca2fd;p=packages%2Fo%2Fopenafs.git Properly AFS_GUNLOCK() when returning an error after having previously AFS_GLOCK()'ed, in afs_mount() and afs_unmount(). --- diff --git a/src/afs/SOLARIS/osi_vfsops.c b/src/afs/SOLARIS/osi_vfsops.c index 1a9279315..2a7d4350e 100644 --- a/src/afs/SOLARIS/osi_vfsops.c +++ b/src/afs/SOLARIS/osi_vfsops.c @@ -41,11 +41,14 @@ int afs_mount(struct vfs *afsp, struct vnode *amvp, struct mounta *uap, AFS_STATCNT(afs_mount); - if (!suser(credp)) + if (!suser(credp)) { + AFS_GUNLOCK(); return EPERM; + } afsp->vfs_fstype = afsfstype; if (afs_globalVFS) { /* Don't allow remounts. */ + AFS_GUNLOCK(); return EBUSY; } @@ -68,8 +71,10 @@ int afs_unmount (struct vfs *afsp, struct AFS_UCRED *credp) AFS_GLOCK(); AFS_STATCNT(afs_unmount); - if (!suser(credp)) + if (!suser(credp)) { + AFS_GUNLOCK(); return EPERM; + } afs_globalVFS = 0; afs_shutdown();