Check-in [3021e03379]
Overview
Comment:Updated to be more subtle with differing inodes, only differ them if the files are different
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 3021e03379960b1e459d0a6add47ccb07e465821
User & Date: rkeene on 2015-05-12 13:30:07
Other Links: manifest | tags
Context
2015-05-26
15:44
Fixed bug in resetting latest value check-in: 355ee88ec8 user: rkeene tags: trunk
2015-05-12
13:30
Updated to be more subtle with differing inodes, only differ them if the files are different check-in: 3021e03379 user: rkeene tags: trunk
2015-05-05
21:58
Updated to give each file owned by a different UID their own inode so the VFS will (maybe) think they are different files check-in: ed7fabb181 user: rkeene tags: trunk
Changes

Modified appfsd.c from [59919e0d2e] to [388927f9ca].

641
642
643
644
645
646
647

648



649
650
651
652
653
654
655
641
642
643
644
645
646
647
648

649
650
651
652
653
654
655
656
657
658







+
-
+
+
+







		retval *= 16777619; /* FNV-1a 32-bit prime */
#else
		/* GCC Optimized replacement */
		retval += (retval << 1) + (retval << 4) + (retval << 7) + (retval << 8) + (retval << 24);
#endif
	}

	if (uid >= 0) {
	retval += uid;
		retval += uid;
		retval++;
	}

	return(retval);
}

/*
 * Cache Get Path Info lookups for speed
 */
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
914
915
916
917
918
919
920

921
922
923
924
925
926
927







-








		appfs_call_libtcl(Tcl_Release(interp);)

		return(-EIO);
	}

	pathinfo->packaged = 0;
	pathinfo->inode = appfs_get_path_inode(path, fsuid);

	appfs_call_libtcl(
		attr_value_str = Tcl_GetString(attr_value);

		switch (attr_value_str[0]) {
			case 'd': /* directory */
				pathinfo->type = APPFS_PATHTYPE_DIRECTORY;
1010
1011
1012
1013
1014
1015
1016






1017
1018
1019
1020
1021
1022
1023
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031







+
+
+
+
+
+







			}
		} else {
			pathinfo->time = appfs_boottime;
		}

		Tcl_Release(interp);
	)

	if (pathinfo->packaged) {
		pathinfo->inode = appfs_get_path_inode(path, -1);
	} else {
		pathinfo->inode = appfs_get_path_inode(path, fsuid);
	}

	if (retval == 0) {
		appfs_get_path_info_cache_add(path, fsuid, pathinfo);
	} else {
		APPFS_DEBUG("error: Invalid type for \"%s\" from Tcl", path);
	}