Mercurial > illumos > illumos-gate
diff usr/src/uts/common/fs/hsfs/hsfs_vfsops.c @ 1025:1aef26bcfa0e
6300064 hsfs_spec.h has developed a southern drawl.
6338131 IDE_SUA_LEN() macro can cause integer underflow
6339513 strlcat() isn't always appropriate ...
6343199 hsfs mount error exit part still doesn't clean up correctly
author | frankho |
---|---|
date | Thu, 01 Dec 2005 02:59:10 -0800 |
parents | e082e44c7fce |
children | 196daa2cf3db |
line wrap: on
line diff
--- a/usr/src/uts/common/fs/hsfs/hsfs_vfsops.c Wed Nov 30 14:11:33 2005 -0800 +++ b/usr/src/uts/common/fs/hsfs/hsfs_vfsops.c Thu Dec 01 02:59:10 2005 -0800 @@ -2,9 +2,8 @@ * CDDL HEADER START * * The contents of this file are subject to the terms of the - * Common Development and Distribution License, Version 1.0 only - * (the "License"). You may not use this file except in compliance - * with the License. + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. @@ -572,12 +571,10 @@ * Look for a Standard File Structure Volume Descriptor, * of which there must be at least one. * If found, check for volume size consistency. - * - * XXX - va_size may someday not be large enough to do this correctly. */ - error = hs_findhsvol(fsp, devvp, &fsp->hsfs_vol); - if (error == EINVAL) /* not in hs format, try iso 9660 format */ - error = hs_findisovol(fsp, devvp, &fsp->hsfs_vol); + error = hs_findisovol(fsp, devvp, &fsp->hsfs_vol); + if (error == EINVAL) /* no iso 9660 - try high sierra ... */ + error = hs_findhsvol(fsp, devvp, &fsp->hsfs_vol); if (error) goto cleanup; @@ -635,6 +632,10 @@ if (hs_remakenode(fsp->hsfs_vol.root_dir.ext_lbn, (uint_t)0, vfsp, &fsp->hsfs_rootvp)) { error = EINVAL; + hs_mounttab = hs_mounttab->hsfs_next; + mutex_destroy(&fsp->hsfs_free_lock); + rw_destroy(&fsp->hsfs_hash_lock); + kmem_free(fsp->hsfs_fsmnt, strlen(path) + 1); mutex_exit(&hs_mounttab_lock); goto cleanup; }