PERFORCE change 103094 for review
John Birrell
jb at FreeBSD.org
Thu Aug 3 04:55:08 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=103094
Change 103094 by jb at jb_freebsd2 on 2006/08/03 04:54:10
IFC
Affected files ...
.. //depot/projects/dtrace/src/lib/libc/uuid/uuid_compare.c#3 integrate
.. //depot/projects/dtrace/src/sys/fs/msdosfs/msdosfs_vfsops.c#4 integrate
Differences ...
==== //depot/projects/dtrace/src/lib/libc/uuid/uuid_compare.c#3 (text+ko) ====
@@ -24,7 +24,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/lib/libc/uuid/uuid_compare.c,v 1.4 2005/01/03 02:56:15 marcel Exp $
+ * $FreeBSD: src/lib/libc/uuid/uuid_compare.c,v 1.5 2006/08/03 03:34:36 delphij Exp $
*/
#include <string.h>
@@ -41,7 +41,8 @@
int32_t
uuid_compare(const uuid_t *a, const uuid_t *b, uint32_t *status)
{
- int res;
+ int res;
+ int64_t res64;
if (status != NULL)
*status = uuid_s_ok;
@@ -54,10 +55,19 @@
if (b == NULL)
return ((uuid_is_nil(a, NULL)) ? 0 : 1);
- /* We have to compare the hard way. */
- res = (int)((int64_t)a->time_low - (int64_t)b->time_low);
- if (res)
- return ((res < 0) ? -1 : 1);
+ /*
+ * We have to compare the hard way.
+ *
+ * Note that time_low is defined as unsigned 32-bit
+ * integer, therefore, with a significantly large
+ * a->time_low and a small b->time_low, we will end
+ * up with a value which is larger than 0x7fffffff
+ * which is negative if casted to signed 32-bit
+ * integer.
+ */
+ res64 = (int64_t)a->time_low - (int64_t)b->time_low;
+ if (res64)
+ return ((res64 < 0) ? -1 : 1);
res = (int)a->time_mid - (int)b->time_mid;
if (res)
return ((res < 0) ? -1 : 1);
==== //depot/projects/dtrace/src/sys/fs/msdosfs/msdosfs_vfsops.c#4 (text+ko) ====
@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_vfsops.c,v 1.151 2006/06/01 02:25:00 rodrigc Exp $ */
+/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_vfsops.c,v 1.152 2006/08/03 03:55:52 delphij Exp $ */
/* $NetBSD: msdosfs_vfsops.c,v 1.51 1997/11/17 15:36:58 ws Exp $ */
/*-
@@ -283,6 +283,10 @@
g_access(pmp->pm_cp, 0, -1, 0);
g_topology_unlock();
PICKUP_GIANT();
+ /* Now the volume is clean. Mark it. */
+ error = markvoldirty(pmp, 0);
+ if (error && (flags & FORCECLOSE) == 0)
+ return (error);
} else if ((pmp->pm_flags & MSDOSFSMNT_RONLY) &&
!vfs_flagopt(mp->mnt_optnew, "ro", NULL, 0)) {
/*
More information about the p4-projects
mailing list