Lines Matching defs:iter
45 * @iter: iter to use for searching
48 * found, @iter points to the position in the directory with given entry.
53 struct udf_fileident_iter *iter)
66 for (ret = udf_fiiter_init(iter, dir, 0);
67 !ret && iter->pos < dir->i_size;
68 ret = udf_fiiter_advance(iter)) {
69 if (iter->fi.fileCharacteristics & FID_FILE_CHAR_DELETED) {
74 if (iter->fi.fileCharacteristics & FID_FILE_CHAR_HIDDEN) {
79 if ((iter->fi.fileCharacteristics & FID_FILE_CHAR_PARENT) &&
83 if (!iter->fi.lengthFileIdent)
86 flen = udf_get_filename(sb, iter->name,
87 iter->fi.lengthFileIdent, fname, UDF_NAME_LEN);
100 udf_fiiter_release(iter);
111 struct udf_fileident_iter iter;
117 err = udf_fiiter_find_entry(dir, &dentry->d_name, &iter);
124 loc = lelb_to_cpu(iter.fi.icb.extLocation);
125 udf_fiiter_release(&iter);
143 struct udf_fileident_iter iter;
200 for (ret = udf_fiiter_init(&iter, inode, 0);
201 !ret && iter.pos < inode->i_size;
202 ret = udf_fiiter_advance(&iter)) {
203 iter.fi.descTag.tagLocation = cpu_to_le32(*block);
204 if (iter.fi.lengthOfImpUse != cpu_to_le16(0))
205 impuse = dbh->b_data + iter.pos +
209 udf_fiiter_write_fi(&iter, impuse);
217 udf_fiiter_release(&iter);
223 struct udf_fileident_iter *iter)
243 for (ret = udf_fiiter_init(iter, dir, 0);
244 !ret && iter->pos < dir->i_size;
245 ret = udf_fiiter_advance(iter)) {
246 if (iter->fi.fileCharacteristics & FID_FILE_CHAR_DELETED) {
247 if (udf_dir_entry_len(&iter->fi) == nfidlen) {
248 iter->fi.descTag.tagSerialNum = cpu_to_le16(1);
249 iter->fi.fileVersionNum = cpu_to_le16(1);
250 iter->fi.fileCharacteristics = 0;
251 iter->fi.lengthFileIdent = namelen;
252 iter->fi.lengthOfImpUse = cpu_to_le16(0);
253 memcpy(iter->namebuf, name, namelen);
254 iter->name = iter->namebuf;
260 udf_fiiter_release(iter);
264 blksize - udf_ext0_offset(dir) - iter->pos < nfidlen) {
265 udf_fiiter_release(iter);
269 ret = udf_fiiter_init(iter, dir, dir->i_size);
278 block = iter->eloc.logicalBlockNum +
279 ((iter->elen - 1) >> dir->i_blkbits);
281 off = iter->pos & (blksize - 1);
288 ret = udf_fiiter_append_blk(iter);
290 udf_fiiter_release(iter);
295 if (!(iter->pos & (blksize - 1)))
296 block = iter->eloc.logicalBlockNum +
297 ((iter->elen - 1) >> dir->i_blkbits);
299 memset(&iter->fi, 0, sizeof(struct fileIdentDesc));
301 udf_new_tag((char *)(&iter->fi), TAG_IDENT_FID, 3, 1, block,
304 udf_new_tag((char *)(&iter->fi), TAG_IDENT_FID, 2, 1, block,
306 iter->fi.fileVersionNum = cpu_to_le16(1);
307 iter->fi.lengthFileIdent = namelen;
308 iter->fi.lengthOfImpUse = cpu_to_le16(0);
309 memcpy(iter->namebuf, name, namelen);
310 iter->name = iter->namebuf;
317 udf_fiiter_update_elen(iter, iter->elen -
325 static void udf_fiiter_delete_entry(struct udf_fileident_iter *iter)
327 iter->fi.fileCharacteristics |= FID_FILE_CHAR_DELETED;
329 if (UDF_QUERY_FLAG(iter->dir->i_sb, UDF_FLAG_STRICT))
330 memset(&iter->fi.icb, 0x00, sizeof(struct long_ad));
332 udf_fiiter_write_fi(iter, NULL);
354 struct udf_fileident_iter iter;
357 err = udf_fiiter_add_entry(dir, dentry, &iter);
363 iter.fi.icb.extLength = cpu_to_le32(inode->i_sb->s_blocksize);
364 iter.fi.icb.extLocation = cpu_to_lelb(iinfo->i_location);
365 *(__le32 *)((struct allocDescImpUse *)iter.fi.icb.impUse)->impUse =
367 udf_fiiter_write_fi(&iter, NULL);
370 udf_fiiter_release(&iter);
430 struct udf_fileident_iter iter;
442 err = udf_fiiter_add_entry(inode, NULL, &iter);
449 iter.fi.icb.extLength = cpu_to_le32(inode->i_sb->s_blocksize);
450 iter.fi.icb.extLocation = cpu_to_lelb(dinfo->i_location);
451 *(__le32 *)((struct allocDescImpUse *)iter.fi.icb.impUse)->impUse =
453 iter.fi.fileCharacteristics =
455 udf_fiiter_write_fi(&iter, NULL);
456 udf_fiiter_release(&iter);
459 err = udf_fiiter_add_entry(dir, dentry, &iter);
465 iter.fi.icb.extLength = cpu_to_le32(inode->i_sb->s_blocksize);
466 iter.fi.icb.extLocation = cpu_to_lelb(iinfo->i_location);
467 *(__le32 *)((struct allocDescImpUse *)iter.fi.icb.impUse)->impUse =
469 iter.fi.fileCharacteristics |= FID_FILE_CHAR_DIRECTORY;
470 udf_fiiter_write_fi(&iter, NULL);
471 udf_fiiter_release(&iter);
483 struct udf_fileident_iter iter;
486 for (ret = udf_fiiter_init(&iter, dir, 0);
487 !ret && iter.pos < dir->i_size;
488 ret = udf_fiiter_advance(&iter)) {
489 if (iter.fi.lengthFileIdent &&
490 !(iter.fi.fileCharacteristics & FID_FILE_CHAR_DELETED)) {
491 udf_fiiter_release(&iter);
495 udf_fiiter_release(&iter);
504 struct udf_fileident_iter iter;
507 ret = udf_fiiter_find_entry(dir, &dentry->d_name, &iter);
512 tloc = lelb_to_cpu(iter.fi.icb.extLocation);
518 udf_fiiter_delete_entry(&iter);
531 udf_fiiter_release(&iter);
540 struct udf_fileident_iter iter;
543 ret = udf_fiiter_find_entry(dir, &dentry->d_name, &iter);
548 tloc = lelb_to_cpu(iter.fi.icb.extLocation);
557 udf_fiiter_delete_entry(&iter);
565 udf_fiiter_release(&iter);
732 struct udf_fileident_iter iter;
735 err = udf_fiiter_add_entry(dir, dentry, &iter);
738 iter.fi.icb.extLength = cpu_to_le32(inode->i_sb->s_blocksize);
739 iter.fi.icb.extLocation = cpu_to_lelb(UDF_I(inode)->i_location);
741 *(__le32 *)((struct allocDescImpUse *)iter.fi.icb.impUse)->impUse =
744 udf_fiiter_write_fi(&iter, NULL);
745 udf_fiiter_release(&iter);
903 struct udf_fileident_iter iter;
906 err = udf_fiiter_find_entry(d_inode(child), &dotdot_name, &iter);
910 tloc = lelb_to_cpu(iter.fi.icb.extLocation);
911 udf_fiiter_release(&iter);