From: Jan Kara <jack@xxxxxxx> [ Upstream commit ef91f9998bece00cf7f82ad26177f910a7124b25 ] Convert udf_add_nondir() to new directory iteration code. Signed-off-by: Jan Kara <jack@xxxxxxx> Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@xxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- fs/udf/namei.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) --- a/fs/udf/namei.c +++ b/fs/udf/namei.c @@ -847,26 +847,23 @@ static int udf_add_nondir(struct dentry { struct udf_inode_info *iinfo = UDF_I(inode); struct inode *dir = d_inode(dentry->d_parent); - struct udf_fileident_bh fibh; - struct fileIdentDesc cfi, *fi; + struct udf_fileident_iter iter; int err; - fi = udf_add_entry(dir, dentry, &fibh, &cfi, &err); - if (unlikely(!fi)) { + err = udf_fiiter_add_entry(dir, dentry, &iter); + if (err) { inode_dec_link_count(inode); discard_new_inode(inode); return err; } - cfi.icb.extLength = cpu_to_le32(inode->i_sb->s_blocksize); - cfi.icb.extLocation = cpu_to_lelb(iinfo->i_location); - *(__le32 *)((struct allocDescImpUse *)cfi.icb.impUse)->impUse = + iter.fi.icb.extLength = cpu_to_le32(inode->i_sb->s_blocksize); + iter.fi.icb.extLocation = cpu_to_lelb(iinfo->i_location); + *(__le32 *)((struct allocDescImpUse *)iter.fi.icb.impUse)->impUse = cpu_to_le32(iinfo->i_unique & 0x00000000FFFFFFFFUL); - udf_write_fi(dir, &cfi, fi, &fibh, NULL, NULL); + udf_fiiter_write_fi(&iter, NULL); dir->i_ctime = dir->i_mtime = current_time(dir); mark_inode_dirty(dir); - if (fibh.sbh != fibh.ebh) - brelse(fibh.ebh); - brelse(fibh.sbh); + udf_fiiter_release(&iter); d_instantiate_new(dentry, inode); return 0; Patches currently in stable-queue which might be from cascardo@xxxxxxxxxx are queue-5.15/udf-handle-error-when-expanding-directory.patch queue-5.15/udf-convert-empty_dir-to-new-directory-iteration-code.patch queue-5.15/udf-fix-bogus-checksum-computation-in-udf_rename.patch queue-5.15/udf-convert-udf_expand_dir_adinicb-to-new-directory-iteration.patch queue-5.15/udf-convert-udf_unlink-to-new-directory-iteration-code.patch queue-5.15/udf-convert-udf_add_nondir-to-new-directory-iteration.patch queue-5.15/udf-convert-udf_link-to-new-directory-iteration-code.patch queue-5.15/udf-remove-old-directory-iteration-code.patch queue-5.15/udf-don-t-return-bh-from-udf_expand_dir_adinicb.patch queue-5.15/udf-new-directory-iteration-code.patch queue-5.15/udf-convert-udf_rmdir-to-new-directory-iteration-code.patch queue-5.15/udf-move-udf_expand_dir_adinicb-to-its-callsite.patch queue-5.15/udf-convert-udf_readdir-to-new-directory-iteration.patch queue-5.15/udf-convert-udf_mkdir-to-new-directory-iteration-code.patch queue-5.15/udf-provide-function-to-mark-entry-as-deleted-using-new-directory-iteration-code.patch queue-5.15/udf-convert-udf_lookup-to-use-new-directory-iteration-code.patch queue-5.15/udf-implement-adding-of-dir-entries-using-new-iteration-code.patch queue-5.15/udf-convert-udf_rename-to-new-directory-iteration-code.patch queue-5.15/udf-convert-udf_get_parent-to-new-directory-iteration-code.patch queue-5.15/udf-implement-searching-for-directory-entry-using-new-iteration-code.patch