socsvn commit: r238178 - soc2012/oleksandr/udf-head/sys/fs/udf2
oleksandr at FreeBSD.org
oleksandr at FreeBSD.org
Sat Jun 23 10:05:30 UTC 2012
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
}
More information about the svn-soc-all
mailing list