From d52f19ca0aacdbfdf64bdeaae4153c1f2ec7f385 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Sat, 2 Feb 2008 22:22:20 +0000 Subject: [PATCH] windows-dfs-referrals-symlinks-20082002 LICENSE MIT another small tweak to ensure that we don't create a symlink for "fo" when a mountpoint or symlink for "foo" exists --- src/WINNT/afsd/cm_vnodeops.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/WINNT/afsd/cm_vnodeops.c b/src/WINNT/afsd/cm_vnodeops.c index b1b00e0..6ae6b16 100644 --- a/src/WINNT/afsd/cm_vnodeops.c +++ b/src/WINNT/afsd/cm_vnodeops.c @@ -1301,7 +1301,9 @@ long cm_LookupInternal(cm_scache_t *dscp, char *namep, long flags, cm_user_t *us found = 1; if (!cm_FreelanceMountPointExists(fullname, 0)) code = cm_FreelanceAddMount(fullname, &fullname[1], "root.cell.", 1, &rock.fid); - if ( stricmp(&namep[1], &fullname[1]) && !cm_FreelanceSymlinkExists(namep, flags & CM_FLAG_DFS_REFERRAL ? 1 : 0)) + if ( stricmp(&namep[1], &fullname[1]) && + !cm_FreelanceMountPointExists(namep, flags & CM_FLAG_DFS_REFERRAL ? 1 : 0) && + !cm_FreelanceSymlinkExists(namep, flags & CM_FLAG_DFS_REFERRAL ? 1 : 0)) code = cm_FreelanceAddSymlink(namep, fullname, &rock.fid); } } else { @@ -1309,7 +1311,9 @@ long cm_LookupInternal(cm_scache_t *dscp, char *namep, long flags, cm_user_t *us found = 1; if (!cm_FreelanceMountPointExists(fullname, 0)) code = cm_FreelanceAddMount(fullname, fullname, "root.cell.", 0, &rock.fid); - if ( stricmp(namep, fullname) && !cm_FreelanceSymlinkExists(namep, flags & CM_FLAG_DFS_REFERRAL ? 1 : 0)) + if ( stricmp(namep, fullname) && + !cm_FreelanceMountPointExists(namep, flags & CM_FLAG_DFS_REFERRAL ? 1 : 0) && + !cm_FreelanceSymlinkExists(namep, flags & CM_FLAG_DFS_REFERRAL ? 1 : 0)) code = cm_FreelanceAddSymlink(namep, fullname, &rock.fid); } } -- 1.9.4