Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Jun 2012 10:05:28 +0000
From:      oleksandr@FreeBSD.org
To:        svn-soc-all@FreeBSD.org
Subject:   socsvn commit: r238178 - soc2012/oleksandr/udf-head/sys/fs/udf2
Message-ID:  <20120623100528.9724B1065679@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: oleksandr
Date: Sat Jun 23 10:05:28 2012
New Revision: 238178
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=238178

Log:
  Fix some bug

Modified:
  soc2012/oleksandr/udf-head/sys/fs/udf2/udf_subr.c
  soc2012/oleksandr/udf-head/sys/fs/udf2/udf_subr.h
  soc2012/oleksandr/udf-head/sys/fs/udf2/udf_vfsops.c

Modified: soc2012/oleksandr/udf-head/sys/fs/udf2/udf_subr.c
==============================================================================
--- soc2012/oleksandr/udf-head/sys/fs/udf2/udf_subr.c	Sat Jun 23 09:50:41 2012	(r238177)
+++ soc2012/oleksandr/udf-head/sys/fs/udf2/udf_subr.c	Sat Jun 23 10:05:28 2012	(r238178)
@@ -27,7 +27,6 @@
 
 #include <machine/_inttypes.h>
 #include <sys/cdefs.h>
-#include <sys/cdefs.h>
 #include <sys/endian.h>
 #include <sys/param.h>
 #include <sys/systm.h> /* KASSERT */
@@ -161,7 +160,7 @@
 
 /* not called often */
 int
-udf_update_discinfo(struct udf_mount *ump, uint64_t psize, uint32_t secsize)
+udf_update_discinfo(struct udf_mount *ump, uint32_t sector_size, uint32_t psize)
 {
 	struct vnode *devvp = ump->devvp;
 	struct thread *td;
@@ -200,7 +199,7 @@
 
 	/* TODO problem with last_possible_lba on resizable VND; request */
 	di->last_possible_lba = psize;
-	di->sector_size       = secsize;
+	di->sector_size       = sector_size;
 
 	di->num_sessions = 1;
 	di->num_tracks   = 1;

Modified: soc2012/oleksandr/udf-head/sys/fs/udf2/udf_subr.h
==============================================================================
--- soc2012/oleksandr/udf-head/sys/fs/udf2/udf_subr.h	Sat Jun 23 09:50:41 2012	(r238177)
+++ soc2012/oleksandr/udf-head/sys/fs/udf2/udf_subr.h	Sat Jun 23 10:05:28 2012	(r238178)
@@ -34,7 +34,7 @@
 
 /* device information updating */
 int udf_update_trackinfo(struct udf_mount *ump, struct mmc_trackinfo *trackinfo);
-int udf_update_discinfo(struct udf_mount *ump, uint64_t psize, uint32_t secsize);
+int udf_update_discinfo(struct udf_mount *ump, uint32_t sector_size, uint32_t psize);
 int udf_search_tracks(struct udf_mount *ump, struct udf_args *args,
 		  int *first_tracknr, int *last_tracknr);
 //int udf_search_writing_tracks(struct udf_mount *ump);

Modified: soc2012/oleksandr/udf-head/sys/fs/udf2/udf_vfsops.c
==============================================================================
--- soc2012/oleksandr/udf-head/sys/fs/udf2/udf_vfsops.c	Sat Jun 23 09:50:41 2012	(r238177)
+++ soc2012/oleksandr/udf-head/sys/fs/udf2/udf_vfsops.c	Sat Jun 23 10:05:28 2012	(r238178)
@@ -514,26 +514,30 @@
 	
 	if ((error = udf_update_discinfo(ump, cp->provider->sectorsize, cp->provider->mediasize))) {
 		printf("UDF mount: error inspecting fs node\n");
-		return error;
+		goto fail;
 	}
 
 	/* inspect sector size */
 	ump->sector_size = cp->provider->sectorsize;
-	sector_size = ump->discinfo.sector_size;
+	sector_size = ump->sector_size;
 	bshift = 1;
 	while ((1 << bshift) < sector_size)
 		bshift++;
 	if ((1 << bshift) != sector_size) {
 		printf("UDF mount: "
 		       "hit implementation fence on sector size\n");
-		return EIO;
+		error = EIO;
+		goto fail;
+
 	}
 
 	/* temporary check to overcome sectorsize >= 8192 bytes panic */
 	if (sector_size >= 8192) {
 		printf("UDF mount: "
 			"hit implementation limit, sectorsize to big\n");
-		return EIO;
+		error = EIO;
+		goto fail;
+
 	}
 
 	/*
@@ -543,12 +547,14 @@
 	if ((mp->mnt_flag & MNT_RDONLY) == 0) {
 		if ((ump->discinfo.mmc_cur & MMC_CAP_RECORDABLE) == 0) {
 			printf("UDF mount: disc is not recordable\n");
-			return EROFS;
+			error = EROFS;
+			goto fail;
 		}
 		if (ump->discinfo.mmc_cur & MMC_CAP_SEQUENTIAL) {
 			if (ump->discinfo.disc_state == MMC_STATE_FULL) {
 				printf("UDF mount: disc is not appendable\n");
-				return EROFS;
+				error = EROFS;
+				goto fail;
 			}
 
 			/*
@@ -561,7 +567,8 @@
 		if (args->sessionnr != 0) {
 			printf("UDF mount: updating a previous session "
 				"not yet allowed\n");
-			return EROFS;
+			error = EROFS;
+			goto fail;
 		}
 //#endif 
 	}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120623100528.9724B1065679>