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