Permit the caller to request the cm_scache_t that represents
the created symlink or mount point object.
Reviewed-on: http://gerrit.openafs.org/5355
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
(cherry picked from commit
9b0cb614387403ff433cf39f84c13b626b1b9bdc)
Change-Id: I170059255e3bbc7e3ccbd59b66d7d8b11005a94f
Reviewed-on: http://gerrit.openafs.org/6031
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
tattr.unixModeBits = 0644;
tattr.clientModTime = time(NULL);
- code = cm_SymLink(dscp, leaf, mpInfo, 0, &tattr, userp, reqp);
+ code = cm_SymLink(dscp, leaf, mpInfo, 0, &tattr, userp, reqp, NULL);
}
if (code == 0 && (dscp->flags & CM_SCACHEFLAG_ANYWATCH))
tattr.mask = CM_ATTRMASK_UNIXMODEBITS;
tattr.unixModeBits = 0755;
- code = cm_SymLink(dscp, leaf, cp, 0, &tattr, userp, reqp);
+ code = cm_SymLink(dscp, leaf, cp, 0, &tattr, userp, reqp, NULL);
}
if (code == 0 && (dscp->flags & CM_SCACHEFLAG_ANYWATCH))
}
long cm_SymLink(cm_scache_t *dscp, clientchar_t *cnamep, fschar_t *contentsp, long flags,
- cm_attr_t *attrp, cm_user_t *userp, cm_req_t *reqp)
+ cm_attr_t *attrp, cm_user_t *userp, cm_req_t *reqp, cm_scache_t **scpp)
{
cm_conn_t *connp;
long code;
cm_dirOp_t dirop;
fschar_t *fnamep = NULL;
+ if (scpp)
+ *scpp = NULL;
+
/* Check for RO volume */
if (dscp->flags & CM_SCACHEFLAG_RO)
return CM_ERROR_READONLY;
userp, reqp, 0);
}
lock_ReleaseWrite(&scp->rw);
- cm_ReleaseSCache(scp);
+
+ if (scpp) {
+ *scpp = scp;
+ } else {
+ cm_ReleaseSCache(scp);
+ }
}
}
long flags, cm_user_t *userp, cm_req_t *reqp);
extern long cm_SymLink(cm_scache_t *dscp, clientchar_t *namep, fschar_t *contentsp,
- long flags, cm_attr_t *attrp, cm_user_t *userp, cm_req_t *reqp);
+ long flags, cm_attr_t *attrp, cm_user_t *userp, cm_req_t *reqp,
+ cm_scache_t **scpp);
extern long cm_AssembleLink(cm_scache_t *linkScp, fschar_t *pathSuffixp,
cm_scache_t **newRootScpp, cm_space_t **newSpaceBufferp,