|
@@ -2912,16 +2912,14 @@ match_prepath(struct super_block *sb, struct cifs_mnt_data *mnt_data)
|
|
|
{
|
|
|
struct cifs_sb_info *old = CIFS_SB(sb);
|
|
|
struct cifs_sb_info *new = mnt_data->cifs_sb;
|
|
|
+ bool old_set = old->mnt_cifs_flags & CIFS_MOUNT_USE_PREFIX_PATH;
|
|
|
+ bool new_set = new->mnt_cifs_flags & CIFS_MOUNT_USE_PREFIX_PATH;
|
|
|
|
|
|
- if (old->mnt_cifs_flags & CIFS_MOUNT_USE_PREFIX_PATH) {
|
|
|
- if (!(new->mnt_cifs_flags & CIFS_MOUNT_USE_PREFIX_PATH))
|
|
|
- return 0;
|
|
|
- /* The prepath should be null terminated strings */
|
|
|
- if (strcmp(new->prepath, old->prepath))
|
|
|
- return 0;
|
|
|
-
|
|
|
+ if (old_set && new_set && !strcmp(new->prepath, old->prepath))
|
|
|
return 1;
|
|
|
- }
|
|
|
+ else if (!old_set && !new_set)
|
|
|
+ return 1;
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|