mirror of
https://git.openafs.org/openafs.git
synced 2025-01-18 23:10:58 +00:00
Windows: Force rebuilding Freelance directory in AddMount and AddSymlink
cm_FreelanceAddMount and cm_FreelanceAddSymlink is supposed to return the allocated FID of the entry that was added. However, cm_NameI is called to perform the lookup without forcing an update of the Freelance fake directory. As a result the entry may not be found. Force an update prior to calling cm_NameI() by using cm_clearLocalMountPointChange() and cm_reInitLocalMountPoints() if required. LICENSE MIT Change-Id: I08147b2ec61c810fdc718964362315af67d485b8 Reviewed-on: http://gerrit.openafs.org/1890 Reviewed-by: Jeffrey Altman <jaltman@openafs.org> Tested-by: Jeffrey Altman <jaltman@openafs.org>
This commit is contained in:
parent
f8efae8c70
commit
da2db62342
@ -1095,6 +1095,12 @@ long cm_FreelanceAddMount(char *filename, char *cellname, char *volume, int rw,
|
||||
cpath = cm_FsStringToClientStringAlloc(filename, -1, NULL);
|
||||
if (!cpath)
|
||||
return CM_ERROR_NOSUCHPATH;
|
||||
|
||||
if (cm_getLocalMountPointChange()) { // check for changes
|
||||
cm_clearLocalMountPointChange(); // clear the changefile
|
||||
cm_reInitLocalMountPoints(); // start reinit
|
||||
}
|
||||
|
||||
code = cm_NameI(cm_data.rootSCachep, cpath,
|
||||
CM_FLAG_FOLLOW | CM_FLAG_CASEFOLD | CM_FLAG_DFS_REFERRAL,
|
||||
cm_rootUserp, NULL, &req, &scp);
|
||||
@ -1322,6 +1328,12 @@ long cm_FreelanceAddSymlink(char *filename, char *destination, cm_fid_t *fidp)
|
||||
cpath = cm_FsStringToClientStringAlloc(filename, -1, NULL);
|
||||
if (!cpath)
|
||||
return CM_ERROR_NOSUCHPATH;
|
||||
|
||||
if (cm_getLocalMountPointChange()) { // check for changes
|
||||
cm_clearLocalMountPointChange(); // clear the changefile
|
||||
cm_reInitLocalMountPoints(); // start reinit
|
||||
}
|
||||
|
||||
code = cm_NameI(cm_data.rootSCachep, cpath,
|
||||
CM_FLAG_FOLLOW | CM_FLAG_CASEFOLD | CM_FLAG_DFS_REFERRAL,
|
||||
cm_rootUserp, NULL, &req, &scp);
|
||||
|
Loading…
Reference in New Issue
Block a user