From: Marc Dionne Date: Tue, 5 Jan 2010 00:37:40 +0000 (-0500) Subject: Linux: don't oops on writeback if vcache has no stashed credentials X-Git-Tag: openafs-devel-1_5_69~50 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=94ff83fee835f6d6c43d1907daee7c0e1567ff52;p=packages%2Fo%2Fopenafs.git Linux: don't oops on writeback if vcache has no stashed credentials When doing writeback, use current credentials if we can't find stashed credentials in the vcache entry. This is normally stashed in afs_open, so it's not clear how we get to that point, but that's not a reason to trigger an oops. Change-Id: I60937e3f9e360e68ea84205570c05cabb47ef08e Reviewed-on: http://gerrit.openafs.org/1063 Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear --- diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c index 83a5ab0e6..9f35ca7fc 100644 --- a/src/afs/LINUX/osi_vnodeops.c +++ b/src/afs/LINUX/osi_vnodeops.c @@ -2171,7 +2171,10 @@ afs_linux_writepage(struct page *pp) /* Grab the creds structure currently held in the vnode, and * get a reference to it, in case it goes away ... */ credp = vcp->cred; - crhold(credp); + if (credp) + crhold(credp); + else + credp = crref(); ReleaseWriteLock(&vcp->lock); AFS_GUNLOCK();