Lines Matching refs:dir

162 static struct fileIdentDesc *udf_find_entry(struct inode *dir,  in udf_find_entry()  argument
180 struct udf_inode_info *dinfo = UDF_I(dir); in udf_find_entry()
183 struct super_block *sb = dir->i_sb; in udf_find_entry()
185 size = udf_ext0_offset(dir) + dir->i_size; in udf_find_entry()
186 f_pos = udf_ext0_offset(dir); in udf_find_entry()
191 if (inode_bmap(dir, f_pos >> sb->s_blocksize_bits, &epos, in udf_find_entry()
220 fi = udf_fileident_read(dir, &f_pos, fibh, cfi, &epos, &eloc, in udf_find_entry()
298 static struct dentry *udf_lookup(struct inode *dir, struct dentry *dentry, in udf_lookup() argument
309 fi = udf_find_entry(dir, &dentry->d_name, &fibh, &cfi); in udf_lookup()
321 inode = udf_iget(dir->i_sb, &loc); in udf_lookup()
329 static struct fileIdentDesc *udf_add_entry(struct inode *dir, in udf_add_entry() argument
334 struct super_block *sb = dir->i_sb; in udf_add_entry()
339 loff_t size = udf_ext0_offset(dir) + dir->i_size; in udf_add_entry()
373 f_pos = udf_ext0_offset(dir); in udf_add_entry()
375 fibh->soffset = fibh->eoffset = f_pos & (dir->i_sb->s_blocksize - 1); in udf_add_entry()
376 dinfo = UDF_I(dir); in udf_add_entry()
378 if (inode_bmap(dir, f_pos >> dir->i_sb->s_blocksize_bits, &epos, in udf_add_entry()
380 block = udf_get_lb_pblock(dir->i_sb, in udf_add_entry()
385 block = udf_get_lb_pblock(dir->i_sb, &eloc, offset); in udf_add_entry()
386 if ((++offset << dir->i_sb->s_blocksize_bits) < elen) { in udf_add_entry()
394 fibh->sbh = fibh->ebh = udf_tread(dir->i_sb, block); in udf_add_entry()
404 fi = udf_fileident_read(dir, &f_pos, fibh, cfi, &epos, &eloc, in udf_add_entry()
419 if (!udf_write_fi(dir, cfi, fi, fibh, NULL, in udf_add_entry()
437 fibh->soffset -= udf_ext0_offset(dir); in udf_add_entry()
438 fibh->eoffset -= udf_ext0_offset(dir); in udf_add_entry()
439 f_pos -= udf_ext0_offset(dir); in udf_add_entry()
444 udf_expand_dir_adinicb(dir, &block, err); in udf_add_entry()
448 epos.offset = udf_file_entry_alloc_offset(dir); in udf_add_entry()
450 udf_current_aext(dir, &epos, &eloc, &elen, 1); in udf_add_entry()
466 udf_ext0_offset(dir) + in udf_add_entry()
471 dir->i_sb->s_blocksize_bits); in udf_add_entry()
482 udf_write_aext(dir, &epos, &eloc, elen, 1); in udf_add_entry()
494 dir->i_sb->s_blocksize_bits); in udf_add_entry()
495 fibh->ebh = udf_bread(dir, in udf_add_entry()
496 f_pos >> dir->i_sb->s_blocksize_bits, 1, err); in udf_add_entry()
503 epos.offset = udf_file_entry_alloc_offset(dir); in udf_add_entry()
507 while (udf_next_aext(dir, &epos, &eloc, &elen, 1) == in udf_add_entry()
511 dir->i_sb->s_blocksize_bits); in udf_add_entry()
532 if (!udf_write_fi(dir, cfi, fi, fibh, NULL, name)) { in udf_add_entry()
533 dir->i_size += nfidlen; in udf_add_entry()
538 while (udf_next_aext(dir, &epos, &eloc, &elen, 1) == in udf_add_entry()
541 elen -= dinfo->i_lenExtents - dir->i_size; in udf_add_entry()
546 udf_write_aext(dir, &epos, &eloc, elen, 1); in udf_add_entry()
547 dinfo->i_lenExtents = dir->i_size; in udf_add_entry()
550 mark_inode_dirty(dir); in udf_add_entry()
583 struct inode *dir = d_inode(dentry->d_parent); in udf_add_nondir() local
588 fi = udf_add_entry(dir, dentry, &fibh, &cfi, &err); in udf_add_nondir()
598 udf_write_fi(dir, &cfi, fi, &fibh, NULL, NULL); in udf_add_nondir()
599 dir->i_ctime = dir->i_mtime = current_time(dir); in udf_add_nondir()
600 mark_inode_dirty(dir); in udf_add_nondir()
609 static int udf_create(struct user_namespace *mnt_userns, struct inode *dir, in udf_create() argument
612 struct inode *inode = udf_new_inode(dir, mode); in udf_create()
628 static int udf_tmpfile(struct user_namespace *mnt_userns, struct inode *dir, in udf_tmpfile() argument
631 struct inode *inode = udf_new_inode(dir, mode); in udf_tmpfile()
648 static int udf_mknod(struct user_namespace *mnt_userns, struct inode *dir, in udf_mknod() argument
656 inode = udf_new_inode(dir, mode); in udf_mknod()
664 static int udf_mkdir(struct user_namespace *mnt_userns, struct inode *dir, in udf_mkdir() argument
671 struct udf_inode_info *dinfo = UDF_I(dir); in udf_mkdir()
674 inode = udf_new_inode(dir, S_IFDIR | mode); in udf_mkdir()
698 fi = udf_add_entry(dir, dentry, &fibh, &cfi, &err); in udf_mkdir()
710 udf_write_fi(dir, &cfi, fi, &fibh, NULL, NULL); in udf_mkdir()
711 inc_nlink(dir); in udf_mkdir()
712 dir->i_ctime = dir->i_mtime = current_time(dir); in udf_mkdir()
713 mark_inode_dirty(dir); in udf_mkdir()
724 static int empty_dir(struct inode *dir) in empty_dir() argument
729 loff_t size = udf_ext0_offset(dir) + dir->i_size; in empty_dir()
735 struct udf_inode_info *dinfo = UDF_I(dir); in empty_dir()
737 f_pos = udf_ext0_offset(dir); in empty_dir()
738 fibh.soffset = fibh.eoffset = f_pos & (dir->i_sb->s_blocksize - 1); in empty_dir()
742 else if (inode_bmap(dir, f_pos >> dir->i_sb->s_blocksize_bits, in empty_dir()
745 block = udf_get_lb_pblock(dir->i_sb, &eloc, offset); in empty_dir()
746 if ((++offset << dir->i_sb->s_blocksize_bits) < elen) { in empty_dir()
754 fibh.sbh = fibh.ebh = udf_tread(dir->i_sb, block); in empty_dir()
765 fi = udf_fileident_read(dir, &f_pos, &fibh, &cfi, &epos, &eloc, in empty_dir()
793 static int udf_rmdir(struct inode *dir, struct dentry *dentry) in udf_rmdir() argument
802 fi = udf_find_entry(dir, &dentry->d_name, &fibh, &cfi); in udf_rmdir()
811 if (udf_get_lb_pblock(dir->i_sb, &tloc, 0) != inode->i_ino) in udf_rmdir()
816 retval = udf_delete_entry(dir, fi, &fibh, &cfi); in udf_rmdir()
824 inode_dec_link_count(dir); in udf_rmdir()
825 inode->i_ctime = dir->i_ctime = dir->i_mtime = in udf_rmdir()
827 mark_inode_dirty(dir); in udf_rmdir()
838 static int udf_unlink(struct inode *dir, struct dentry *dentry) in udf_unlink() argument
848 fi = udf_find_entry(dir, &dentry->d_name, &fibh, &cfi); in udf_unlink()
858 if (udf_get_lb_pblock(dir->i_sb, &tloc, 0) != inode->i_ino) in udf_unlink()
866 retval = udf_delete_entry(dir, fi, &fibh, &cfi); in udf_unlink()
869 dir->i_ctime = dir->i_mtime = current_time(dir); in udf_unlink()
870 mark_inode_dirty(dir); in udf_unlink()
872 inode->i_ctime = dir->i_ctime; in udf_unlink()
884 static int udf_symlink(struct user_namespace *mnt_userns, struct inode *dir, in udf_symlink() argument
887 struct inode *inode = udf_new_inode(dir, S_IFLNK | 0777); in udf_symlink()
898 struct super_block *sb = dir->i_sb; in udf_symlink()
1037 static int udf_link(struct dentry *old_dentry, struct inode *dir, in udf_link() argument
1045 fi = udf_add_entry(dir, dentry, &fibh, &cfi, &err); in udf_link()
1055 udf_write_fi(dir, &cfi, fi, &fibh, NULL, NULL); in udf_link()
1056 if (UDF_I(dir)->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) in udf_link()
1057 mark_inode_dirty(dir); in udf_link()
1065 dir->i_ctime = dir->i_mtime = current_time(dir); in udf_link()
1066 mark_inode_dirty(dir); in udf_link()