Lines Matching refs:dir

160 static struct fileIdentDesc *udf_find_entry(struct inode *dir,  in udf_find_entry()  argument
178 struct udf_inode_info *dinfo = UDF_I(dir); in udf_find_entry()
181 struct super_block *sb = dir->i_sb; in udf_find_entry()
183 size = udf_ext0_offset(dir) + dir->i_size; in udf_find_entry()
184 f_pos = udf_ext0_offset(dir); in udf_find_entry()
189 if (inode_bmap(dir, f_pos >> sb->s_blocksize_bits, &epos, in udf_find_entry()
218 fi = udf_fileident_read(dir, &f_pos, fibh, cfi, &epos, &eloc, in udf_find_entry()
296 static struct dentry *udf_lookup(struct inode *dir, struct dentry *dentry, in udf_lookup() argument
316 inode = udf_iget(dir->i_sb, lb); in udf_lookup()
322 fi = udf_find_entry(dir, &dentry->d_name, &fibh, &cfi); in udf_lookup()
334 inode = udf_iget(dir->i_sb, &loc); in udf_lookup()
342 static struct fileIdentDesc *udf_add_entry(struct inode *dir, in udf_add_entry() argument
347 struct super_block *sb = dir->i_sb; in udf_add_entry()
352 loff_t size = udf_ext0_offset(dir) + dir->i_size; in udf_add_entry()
386 f_pos = udf_ext0_offset(dir); in udf_add_entry()
388 fibh->soffset = fibh->eoffset = f_pos & (dir->i_sb->s_blocksize - 1); in udf_add_entry()
389 dinfo = UDF_I(dir); in udf_add_entry()
391 if (inode_bmap(dir, f_pos >> dir->i_sb->s_blocksize_bits, &epos, in udf_add_entry()
393 block = udf_get_lb_pblock(dir->i_sb, in udf_add_entry()
398 block = udf_get_lb_pblock(dir->i_sb, &eloc, offset); in udf_add_entry()
399 if ((++offset << dir->i_sb->s_blocksize_bits) < elen) { in udf_add_entry()
407 fibh->sbh = fibh->ebh = udf_tread(dir->i_sb, block); in udf_add_entry()
417 fi = udf_fileident_read(dir, &f_pos, fibh, cfi, &epos, &eloc, in udf_add_entry()
432 if (!udf_write_fi(dir, cfi, fi, fibh, NULL, in udf_add_entry()
450 fibh->soffset -= udf_ext0_offset(dir); in udf_add_entry()
451 fibh->eoffset -= udf_ext0_offset(dir); in udf_add_entry()
452 f_pos -= udf_ext0_offset(dir); in udf_add_entry()
457 udf_expand_dir_adinicb(dir, &block, err); in udf_add_entry()
461 epos.offset = udf_file_entry_alloc_offset(dir); in udf_add_entry()
463 udf_current_aext(dir, &epos, &eloc, &elen, 1); in udf_add_entry()
480 udf_ext0_offset(dir) + in udf_add_entry()
485 dir->i_sb->s_blocksize_bits); in udf_add_entry()
496 udf_write_aext(dir, &epos, &eloc, elen, 1); in udf_add_entry()
508 dir->i_sb->s_blocksize_bits); in udf_add_entry()
509 fibh->ebh = udf_bread(dir, in udf_add_entry()
510 f_pos >> dir->i_sb->s_blocksize_bits, 1, err); in udf_add_entry()
517 epos.offset = udf_file_entry_alloc_offset(dir); in udf_add_entry()
521 while (udf_next_aext(dir, &epos, &eloc, &elen, 1) == in udf_add_entry()
525 dir->i_sb->s_blocksize_bits); in udf_add_entry()
546 if (!udf_write_fi(dir, cfi, fi, fibh, NULL, name)) { in udf_add_entry()
547 dir->i_size += nfidlen; in udf_add_entry()
552 while (udf_next_aext(dir, &epos, &eloc, &elen, 1) == in udf_add_entry()
555 elen -= dinfo->i_lenExtents - dir->i_size; in udf_add_entry()
560 udf_write_aext(dir, &epos, &eloc, elen, 1); in udf_add_entry()
561 dinfo->i_lenExtents = dir->i_size; in udf_add_entry()
564 mark_inode_dirty(dir); in udf_add_entry()
597 struct inode *dir = d_inode(dentry->d_parent); in udf_add_nondir() local
602 fi = udf_add_entry(dir, dentry, &fibh, &cfi, &err); in udf_add_nondir()
612 udf_write_fi(dir, &cfi, fi, &fibh, NULL, NULL); in udf_add_nondir()
613 dir->i_ctime = dir->i_mtime = current_time(dir); in udf_add_nondir()
614 mark_inode_dirty(dir); in udf_add_nondir()
623 static int udf_create(struct inode *dir, struct dentry *dentry, umode_t mode, in udf_create() argument
626 struct inode *inode = udf_new_inode(dir, mode); in udf_create()
642 static int udf_tmpfile(struct inode *dir, struct dentry *dentry, umode_t mode) in udf_tmpfile() argument
644 struct inode *inode = udf_new_inode(dir, mode); in udf_tmpfile()
661 static int udf_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, in udf_mknod() argument
669 inode = udf_new_inode(dir, mode); in udf_mknod()
677 static int udf_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) in udf_mkdir() argument
683 struct udf_inode_info *dinfo = UDF_I(dir); in udf_mkdir()
686 inode = udf_new_inode(dir, S_IFDIR | mode); in udf_mkdir()
710 fi = udf_add_entry(dir, dentry, &fibh, &cfi, &err); in udf_mkdir()
722 udf_write_fi(dir, &cfi, fi, &fibh, NULL, NULL); in udf_mkdir()
723 inc_nlink(dir); in udf_mkdir()
724 dir->i_ctime = dir->i_mtime = current_time(dir); in udf_mkdir()
725 mark_inode_dirty(dir); in udf_mkdir()
736 static int empty_dir(struct inode *dir) in empty_dir() argument
741 loff_t size = udf_ext0_offset(dir) + dir->i_size; in empty_dir()
747 struct udf_inode_info *dinfo = UDF_I(dir); in empty_dir()
749 f_pos = udf_ext0_offset(dir); in empty_dir()
750 fibh.soffset = fibh.eoffset = f_pos & (dir->i_sb->s_blocksize - 1); in empty_dir()
754 else if (inode_bmap(dir, f_pos >> dir->i_sb->s_blocksize_bits, in empty_dir()
757 block = udf_get_lb_pblock(dir->i_sb, &eloc, offset); in empty_dir()
758 if ((++offset << dir->i_sb->s_blocksize_bits) < elen) { in empty_dir()
766 fibh.sbh = fibh.ebh = udf_tread(dir->i_sb, block); in empty_dir()
777 fi = udf_fileident_read(dir, &f_pos, &fibh, &cfi, &epos, &eloc, in empty_dir()
805 static int udf_rmdir(struct inode *dir, struct dentry *dentry) in udf_rmdir() argument
814 fi = udf_find_entry(dir, &dentry->d_name, &fibh, &cfi); in udf_rmdir()
823 if (udf_get_lb_pblock(dir->i_sb, &tloc, 0) != inode->i_ino) in udf_rmdir()
828 retval = udf_delete_entry(dir, fi, &fibh, &cfi); in udf_rmdir()
836 inode_dec_link_count(dir); in udf_rmdir()
837 inode->i_ctime = dir->i_ctime = dir->i_mtime = in udf_rmdir()
839 mark_inode_dirty(dir); in udf_rmdir()
850 static int udf_unlink(struct inode *dir, struct dentry *dentry) in udf_unlink() argument
860 fi = udf_find_entry(dir, &dentry->d_name, &fibh, &cfi); in udf_unlink()
870 if (udf_get_lb_pblock(dir->i_sb, &tloc, 0) != inode->i_ino) in udf_unlink()
878 retval = udf_delete_entry(dir, fi, &fibh, &cfi); in udf_unlink()
881 dir->i_ctime = dir->i_mtime = current_time(dir); in udf_unlink()
882 mark_inode_dirty(dir); in udf_unlink()
884 inode->i_ctime = dir->i_ctime; in udf_unlink()
896 static int udf_symlink(struct inode *dir, struct dentry *dentry, in udf_symlink() argument
899 struct inode *inode = udf_new_inode(dir, S_IFLNK | 0777); in udf_symlink()
910 struct super_block *sb = dir->i_sb; in udf_symlink()
1045 static int udf_link(struct dentry *old_dentry, struct inode *dir, in udf_link() argument
1053 fi = udf_add_entry(dir, dentry, &fibh, &cfi, &err); in udf_link()
1063 udf_write_fi(dir, &cfi, fi, &fibh, NULL, NULL); in udf_link()
1064 if (UDF_I(dir)->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) in udf_link()
1065 mark_inode_dirty(dir); in udf_link()
1073 dir->i_ctime = dir->i_mtime = current_time(dir); in udf_link()
1074 mark_inode_dirty(dir); in udf_link()