Lines Matching refs:fibh
45 struct fileIdentDesc *sfi, struct udf_fileident_bh *fibh, in udf_write_fi() argument
48 uint16_t crclen = fibh->eoffset - fibh->soffset - sizeof(struct tag); in udf_write_fi()
53 int padlen = fibh->eoffset - fibh->soffset - liu - lfi - in udf_write_fi()
60 offset = fibh->soffset + sizeof(struct fileIdentDesc); in udf_write_fi()
66 memcpy(fibh->ebh->b_data + offset, impuse, liu); in udf_write_fi()
69 memcpy(fibh->ebh->b_data, impuse - offset, in udf_write_fi()
80 memcpy(fibh->ebh->b_data + offset, fileident, lfi); in udf_write_fi()
84 memcpy(fibh->ebh->b_data, fileident - offset, in udf_write_fi()
94 memset(fibh->ebh->b_data + offset, 0x00, padlen); in udf_write_fi()
97 memset(fibh->ebh->b_data, 0x00, padlen + offset); in udf_write_fi()
103 if (fibh->sbh == fibh->ebh) { in udf_write_fi()
107 } else if (sizeof(struct fileIdentDesc) >= -fibh->soffset) { in udf_write_fi()
108 crc = crc_itu_t(crc, fibh->ebh->b_data + in udf_write_fi()
110 fibh->soffset, in udf_write_fi()
115 -fibh->soffset - sizeof(struct fileIdentDesc)); in udf_write_fi()
116 crc = crc_itu_t(crc, fibh->ebh->b_data, fibh->eoffset); in udf_write_fi()
123 if (adinicb || (sizeof(struct fileIdentDesc) <= -fibh->soffset)) { in udf_write_fi()
127 memcpy((uint8_t *)sfi, (uint8_t *)cfi, -fibh->soffset); in udf_write_fi()
128 memcpy(fibh->ebh->b_data, (uint8_t *)cfi - fibh->soffset, in udf_write_fi()
129 sizeof(struct fileIdentDesc) + fibh->soffset); in udf_write_fi()
135 if (fibh->sbh != fibh->ebh) in udf_write_fi()
136 mark_buffer_dirty_inode(fibh->ebh, inode); in udf_write_fi()
137 mark_buffer_dirty_inode(fibh->sbh, inode); in udf_write_fi()
165 struct udf_fileident_bh *fibh, in udf_find_entry() argument
189 fibh->sbh = fibh->ebh = NULL; in udf_find_entry()
190 fibh->soffset = fibh->eoffset = f_pos & (sb->s_blocksize - 1); in udf_find_entry()
207 fibh->sbh = fibh->ebh = udf_tread(sb, block); in udf_find_entry()
208 if (!fibh->sbh) { in udf_find_entry()
221 fi = udf_fileident_read(dir, &f_pos, fibh, cfi, &epos, &eloc, in udf_find_entry()
231 if (fibh->sbh == fibh->ebh) { in udf_find_entry()
236 poffset = fibh->soffset + sizeof(struct fileIdentDesc) + in udf_find_entry()
240 nameptr = (uint8_t *)(fibh->ebh->b_data + in udf_find_entry()
255 fibh->ebh->b_data, poffset); in udf_find_entry()
288 if (fibh->sbh != fibh->ebh) in udf_find_entry()
289 brelse(fibh->ebh); in udf_find_entry()
290 brelse(fibh->sbh); in udf_find_entry()
304 struct udf_fileident_bh fibh; in udf_lookup() local
310 fi = udf_find_entry(dir, &dentry->d_name, &fibh, &cfi); in udf_lookup()
317 if (fibh.sbh != fibh.ebh) in udf_lookup()
318 brelse(fibh.ebh); in udf_lookup()
319 brelse(fibh.sbh); in udf_lookup()
332 struct udf_fileident_bh *fibh, in udf_add_entry() argument
349 fibh->sbh = fibh->ebh = NULL; in udf_add_entry()
376 fibh->soffset = fibh->eoffset = f_pos & (dir->i_sb->s_blocksize - 1); in udf_add_entry()
383 fibh->soffset = fibh->eoffset = sb->s_blocksize; in udf_add_entry()
395 fibh->sbh = fibh->ebh = udf_tread(dir->i_sb, block); in udf_add_entry()
396 if (!fibh->sbh) { in udf_add_entry()
405 fi = udf_fileident_read(dir, &f_pos, fibh, cfi, &epos, &eloc, in udf_add_entry()
420 if (!udf_write_fi(dir, cfi, fi, fibh, NULL, in udf_add_entry()
435 sb->s_blocksize - fibh->eoffset < nfidlen) { in udf_add_entry()
438 fibh->soffset -= udf_ext0_offset(dir); in udf_add_entry()
439 fibh->eoffset -= udf_ext0_offset(dir); in udf_add_entry()
441 if (fibh->sbh != fibh->ebh) in udf_add_entry()
442 brelse(fibh->ebh); in udf_add_entry()
443 brelse(fibh->sbh); in udf_add_entry()
444 fibh->sbh = fibh->ebh = in udf_add_entry()
446 if (!fibh->sbh) in udf_add_entry()
455 if (sb->s_blocksize - fibh->eoffset >= nfidlen) { in udf_add_entry()
456 fibh->soffset = fibh->eoffset; in udf_add_entry()
457 fibh->eoffset += nfidlen; in udf_add_entry()
458 if (fibh->sbh != fibh->ebh) { in udf_add_entry()
459 brelse(fibh->sbh); in udf_add_entry()
460 fibh->sbh = fibh->ebh; in udf_add_entry()
466 (dinfo->i_data + fibh->soffset - in udf_add_entry()
474 (fibh->sbh->b_data + fibh->soffset); in udf_add_entry()
487 fibh->soffset = fibh->eoffset - sb->s_blocksize; in udf_add_entry()
488 fibh->eoffset += nfidlen - sb->s_blocksize; in udf_add_entry()
489 if (fibh->sbh != fibh->ebh) { in udf_add_entry()
490 brelse(fibh->sbh); in udf_add_entry()
491 fibh->sbh = fibh->ebh; in udf_add_entry()
496 fibh->ebh = udf_bread(dir, in udf_add_entry()
498 if (!fibh->ebh) in udf_add_entry()
506 if (!fibh->soffset) { in udf_add_entry()
513 brelse(fibh->sbh); in udf_add_entry()
514 fibh->sbh = fibh->ebh; in udf_add_entry()
515 fi = (struct fileIdentDesc *)(fibh->sbh->b_data); in udf_add_entry()
518 (fibh->sbh->b_data + sb->s_blocksize + in udf_add_entry()
519 fibh->soffset); in udf_add_entry()
533 if (!udf_write_fi(dir, cfi, fi, fibh, NULL, name)) { in udf_add_entry()
560 if (fibh->sbh != fibh->ebh) in udf_add_entry()
561 brelse(fibh->ebh); in udf_add_entry()
562 brelse(fibh->sbh); in udf_add_entry()
570 struct udf_fileident_bh *fibh, in udf_delete_entry() argument
578 return udf_write_fi(inode, cfi, fi, fibh, NULL, NULL); in udf_delete_entry()
585 struct udf_fileident_bh fibh; in udf_add_nondir() local
589 fi = udf_add_entry(dir, dentry, &fibh, &cfi, &err); in udf_add_nondir()
599 udf_write_fi(dir, &cfi, fi, &fibh, NULL, NULL); in udf_add_nondir()
602 if (fibh.sbh != fibh.ebh) in udf_add_nondir()
603 brelse(fibh.ebh); in udf_add_nondir()
604 brelse(fibh.sbh); in udf_add_nondir()
667 struct udf_fileident_bh fibh; in udf_mkdir() local
680 fi = udf_add_entry(inode, NULL, &fibh, &cfi, &err); in udf_mkdir()
693 udf_write_fi(inode, &cfi, fi, &fibh, NULL, NULL); in udf_mkdir()
694 brelse(fibh.sbh); in udf_mkdir()
697 fi = udf_add_entry(dir, dentry, &fibh, &cfi, &err); in udf_mkdir()
709 udf_write_fi(dir, &cfi, fi, &fibh, NULL, NULL); in udf_mkdir()
714 if (fibh.sbh != fibh.ebh) in udf_mkdir()
715 brelse(fibh.ebh); in udf_mkdir()
716 brelse(fibh.sbh); in udf_mkdir()
726 struct udf_fileident_bh fibh; in empty_dir() local
737 fibh.soffset = fibh.eoffset = f_pos & (dir->i_sb->s_blocksize - 1); in empty_dir()
740 fibh.sbh = fibh.ebh = NULL; in empty_dir()
753 fibh.sbh = fibh.ebh = udf_tread(dir->i_sb, block); in empty_dir()
754 if (!fibh.sbh) { in empty_dir()
764 fi = udf_fileident_read(dir, &f_pos, &fibh, &cfi, &epos, &eloc, in empty_dir()
767 if (fibh.sbh != fibh.ebh) in empty_dir()
768 brelse(fibh.ebh); in empty_dir()
769 brelse(fibh.sbh); in empty_dir()
776 if (fibh.sbh != fibh.ebh) in empty_dir()
777 brelse(fibh.ebh); in empty_dir()
778 brelse(fibh.sbh); in empty_dir()
784 if (fibh.sbh != fibh.ebh) in empty_dir()
785 brelse(fibh.ebh); in empty_dir()
786 brelse(fibh.sbh); in empty_dir()
796 struct udf_fileident_bh fibh; in udf_rmdir() local
801 fi = udf_find_entry(dir, &dentry->d_name, &fibh, &cfi); in udf_rmdir()
815 retval = udf_delete_entry(dir, fi, &fibh, &cfi); in udf_rmdir()
829 if (fibh.sbh != fibh.ebh) in udf_rmdir()
830 brelse(fibh.ebh); in udf_rmdir()
831 brelse(fibh.sbh); in udf_rmdir()
841 struct udf_fileident_bh fibh; in udf_unlink() local
847 fi = udf_find_entry(dir, &dentry->d_name, &fibh, &cfi); in udf_unlink()
865 retval = udf_delete_entry(dir, fi, &fibh, &cfi); in udf_unlink()
875 if (fibh.sbh != fibh.ebh) in udf_unlink()
876 brelse(fibh.ebh); in udf_unlink()
877 brelse(fibh.sbh); in udf_unlink()
1040 struct udf_fileident_bh fibh; in udf_link() local
1044 fi = udf_add_entry(dir, dentry, &fibh, &cfi, &err); in udf_link()
1054 udf_write_fi(dir, &cfi, fi, &fibh, NULL, NULL); in udf_link()
1058 if (fibh.sbh != fibh.ebh) in udf_link()
1059 brelse(fibh.ebh); in udf_link()
1060 brelse(fibh.sbh); in udf_link()
1225 struct udf_fileident_bh fibh; in udf_get_parent() local
1227 if (!udf_find_entry(d_inode(child), &dotdot, &fibh, &cfi)) in udf_get_parent()
1230 if (fibh.sbh != fibh.ebh) in udf_get_parent()
1231 brelse(fibh.ebh); in udf_get_parent()
1232 brelse(fibh.sbh); in udf_get_parent()