Module Name: src
Committed By: liamjfoy
Date: Mon Jun 1 17:11:36 UTC 2009
Modified Files:
src/sys/fs/udf [netbsd-5]: udf_strat_direct.c udf_strat_rmw.c
udf_strat_sequential.c udf_subr.c
Log Message:
Pull up following revision(s) (requested by reinoud in ticket #772):
sys/fs/udf/udf_strat_rmw.c: revision 1.19
sys/fs/udf/udf_strat_sequential.c: revision 1.10
sys/fs/udf/udf_strat_direct.c: revision 1.10
sys/fs/udf/udf_subr.c: revision 1.90
sys/fs/udf/udf_subr.c: revision 1.91
Descriptor version is 16 bit and not 8 so use udf_rw16() to access them.
UniqueID was written in the logical volume integrity without byteswapping for
bigendian machines.
Retire IN_CALLBACK_ULK flagging since its not used anymore and the old
assertions on it would trigger without cause.
To generate a diff of this commit:
cvs rdiff -u -r1.5.4.3 -r1.5.4.4 src/sys/fs/udf/udf_strat_direct.c
cvs rdiff -u -r1.9.4.7 -r1.9.4.8 src/sys/fs/udf/udf_strat_rmw.c
cvs rdiff -u -r1.5.4.2 -r1.5.4.3 src/sys/fs/udf/udf_strat_sequential.c
cvs rdiff -u -r1.73.4.9 -r1.73.4.10 src/sys/fs/udf/udf_subr.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/fs/udf/udf_strat_direct.c
diff -u src/sys/fs/udf/udf_strat_direct.c:1.5.4.3 src/sys/fs/udf/udf_strat_direct.c:1.5.4.4
--- src/sys/fs/udf/udf_strat_direct.c:1.5.4.3 Wed Mar 18 05:08:38 2009
+++ src/sys/fs/udf/udf_strat_direct.c Mon Jun 1 17:11:35 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: udf_strat_direct.c,v 1.5.4.3 2009/03/18 05:08:38 snj Exp $ */
+/* $NetBSD: udf_strat_direct.c,v 1.5.4.4 2009/06/01 17:11:35 liamjfoy Exp $ */
/*
* Copyright (c) 2006, 2008 Reinoud Zandijk
@@ -28,7 +28,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__KERNEL_RCSID(0, "$NetBSD: udf_strat_direct.c,v 1.5.4.3 2009/03/18 05:08:38 snj Exp $");
+__KERNEL_RCSID(0, "$NetBSD: udf_strat_direct.c,v 1.5.4.4 2009/06/01 17:11:35 liamjfoy Exp $");
#endif /* not lint */
@@ -116,9 +116,7 @@
udf_node->outstanding_nodedscr--;
if (udf_node->outstanding_nodedscr == 0) {
/* unlock the node */
- KASSERT(udf_node->i_flags & IN_CALLBACK_ULK);
- UDF_UNLOCK_NODE(udf_node, IN_CALLBACK_ULK);
-
+ UDF_UNLOCK_NODE(udf_node, 0);
wakeup(&udf_node->outstanding_nodedscr);
}
/* unreference the vnode so it can be recycled */
Index: src/sys/fs/udf/udf_strat_rmw.c
diff -u src/sys/fs/udf/udf_strat_rmw.c:1.9.4.7 src/sys/fs/udf/udf_strat_rmw.c:1.9.4.8
--- src/sys/fs/udf/udf_strat_rmw.c:1.9.4.7 Wed Feb 18 00:51:27 2009
+++ src/sys/fs/udf/udf_strat_rmw.c Mon Jun 1 17:11:35 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: udf_strat_rmw.c,v 1.9.4.7 2009/02/18 00:51:27 snj Exp $ */
+/* $NetBSD: udf_strat_rmw.c,v 1.9.4.8 2009/06/01 17:11:35 liamjfoy Exp $ */
/*
* Copyright (c) 2006, 2008 Reinoud Zandijk
@@ -28,7 +28,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__KERNEL_RCSID(0, "$NetBSD: udf_strat_rmw.c,v 1.9.4.7 2009/02/18 00:51:27 snj Exp $");
+__KERNEL_RCSID(0, "$NetBSD: udf_strat_rmw.c,v 1.9.4.8 2009/06/01 17:11:35 liamjfoy Exp $");
#endif /* not lint */
@@ -699,7 +699,7 @@
holdrele(udf_node->vnode);
udf_node->outstanding_nodedscr--;
if (udf_node->outstanding_nodedscr == 0) {
- UDF_UNLOCK_NODE(udf_node, udf_node->i_flags & IN_CALLBACK_ULK);
+ UDF_UNLOCK_NODE(udf_node, 0);
wakeup(&udf_node->outstanding_nodedscr);
}
Index: src/sys/fs/udf/udf_strat_sequential.c
diff -u src/sys/fs/udf/udf_strat_sequential.c:1.5.4.2 src/sys/fs/udf/udf_strat_sequential.c:1.5.4.3
--- src/sys/fs/udf/udf_strat_sequential.c:1.5.4.2 Wed Mar 18 05:08:38 2009
+++ src/sys/fs/udf/udf_strat_sequential.c Mon Jun 1 17:11:35 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: udf_strat_sequential.c,v 1.5.4.2 2009/03/18 05:08:38 snj Exp $ */
+/* $NetBSD: udf_strat_sequential.c,v 1.5.4.3 2009/06/01 17:11:35 liamjfoy Exp $ */
/*
* Copyright (c) 2006, 2008 Reinoud Zandijk
@@ -28,7 +28,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__KERNEL_RCSID(0, "$NetBSD: udf_strat_sequential.c,v 1.5.4.2 2009/03/18 05:08:38 snj Exp $");
+__KERNEL_RCSID(0, "$NetBSD: udf_strat_sequential.c,v 1.5.4.3 2009/06/01 17:11:35 liamjfoy Exp $");
#endif /* not lint */
@@ -126,9 +126,7 @@
udf_node->outstanding_nodedscr--;
if (udf_node->outstanding_nodedscr == 0) {
/* first unlock the node */
- KASSERT(udf_node->i_flags & IN_CALLBACK_ULK);
- UDF_UNLOCK_NODE(udf_node, IN_CALLBACK_ULK);
-
+ UDF_UNLOCK_NODE(udf_node, 0);
wakeup(&udf_node->outstanding_nodedscr);
}
Index: src/sys/fs/udf/udf_subr.c
diff -u src/sys/fs/udf/udf_subr.c:1.73.4.9 src/sys/fs/udf/udf_subr.c:1.73.4.10
--- src/sys/fs/udf/udf_subr.c:1.73.4.9 Thu Feb 19 03:39:56 2009
+++ src/sys/fs/udf/udf_subr.c Mon Jun 1 17:11:35 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: udf_subr.c,v 1.73.4.9 2009/02/19 03:39:56 snj Exp $ */
+/* $NetBSD: udf_subr.c,v 1.73.4.10 2009/06/01 17:11:35 liamjfoy Exp $ */
/*
* Copyright (c) 2006, 2008 Reinoud Zandijk
@@ -29,7 +29,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__KERNEL_RCSID(0, "$NetBSD: udf_subr.c,v 1.73.4.9 2009/02/19 03:39:56 snj Exp $");
+__KERNEL_RCSID(0, "$NetBSD: udf_subr.c,v 1.73.4.10 2009/06/01 17:11:35 liamjfoy Exp $");
#endif /* not lint */
@@ -2958,7 +2958,7 @@
goto out;
DPRINTF(VOLUMES, ("VAT format accepted, marking it closed\n"));
- ump->logvol_integrity->lvint_next_unique_id = unique_id;
+ ump->logvol_integrity->lvint_next_unique_id = udf_rw64(unique_id);
ump->logvol_integrity->integrity_type = udf_rw32(UDF_INTEGRITY_CLOSED);
ump->logvol_integrity->time = *mtime;
@@ -3575,7 +3575,7 @@
vrs = (struct vrs_desc *) (buffer + 2048);
vrs->struct_type = 0;
vrs->version = 1;
- if (ump->logical_vol->tag.descriptor_ver == 2) {
+ if (udf_rw16(ump->logical_vol->tag.descriptor_ver) == 2) {
memcpy(vrs->identifier,VRS_NSR02, 5);
} else {
memcpy(vrs->identifier,VRS_NSR03, 5);
@@ -5425,7 +5425,7 @@
{
union dscrptr *dscr;
struct long_ad *loc;
- int extnr, flags, error;
+ int extnr, error;
DPRINTF(NODE, ("udf_writeout_node called\n"));
@@ -5440,8 +5440,7 @@
}
/* lock node */
- flags = waitfor ? 0 : IN_CALLBACK_ULK;
- UDF_LOCK_NODE(udf_node, flags);
+ UDF_LOCK_NODE(udf_node, 0);
/* at least one descriptor writeout */
udf_node->outstanding_nodedscr = 1;
@@ -5641,7 +5640,7 @@
udf_create_logvol_dscr(ump, udf_node, &node_icb_loc, &dscr);
/* choose a fe or an efe for it */
- if (ump->logical_vol->tag.descriptor_ver == 2) {
+ if (udf_rw16(ump->logical_vol->tag.descriptor_ver) == 2) {
udf_node->fe = &dscr->fe;
fid_size = udf_create_new_fe(ump, udf_node->fe,
udf_file_type, &udf_node->loc,