version 1.29.22.1, 2014/05/21 21:06:40 |
version 1.30, 2014/02/27 16:51:38 |
|
|
cd9660_ihashins(struct iso_node *ip) |
cd9660_ihashins(struct iso_node *ip) |
{ |
{ |
struct ihashhead *ipp; |
struct ihashhead *ipp; |
|
int error __diagused; |
|
|
KASSERT(mutex_owned(&cd9660_hashlock)); |
KASSERT(mutex_owned(&cd9660_hashlock)); |
|
|
Line 178 cd9660_ihashins(struct iso_node *ip) |
|
Line 179 cd9660_ihashins(struct iso_node *ip) |
|
LIST_INSERT_HEAD(ipp, ip, i_hash); |
LIST_INSERT_HEAD(ipp, ip, i_hash); |
mutex_exit(&cd9660_ihash_lock); |
mutex_exit(&cd9660_ihash_lock); |
|
|
VOP_LOCK(ITOV(ip), LK_EXCLUSIVE); |
error = VOP_LOCK(ITOV(ip), LK_EXCLUSIVE); |
|
KASSERT(error == 0); |
} |
} |
|
|
/* |
/* |
Line 438 isodirino(struct iso_directory_record *i |
|
Line 440 isodirino(struct iso_directory_record *i |
|
{ |
{ |
ino_t ino; |
ino_t ino; |
|
|
/* |
ino = (isonum_733(isodir->extent) + isonum_711(isodir->ext_attr_length)) |
* Note there is an inverse calculation in |
<< imp->im_bshift; |
* cd9660_vfsops.c:cd9660_vget_internal(): |
return (ino); |
* ip->iso_start = ino >> imp->im_bshift; |
|
* and also a calculation of the isodir pointer |
|
* from an inode in cd9660_vnops.c:cd9660_readlink() |
|
*/ |
|
ino = ((ino_t)isonum_733(isodir->extent) + |
|
isonum_711(isodir->ext_attr_length)) << imp->im_bshift; |
|
return ino; |
|
} |
} |