• Home
  • Raw
  • Download

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
307 fi = udf_find_entry(dir, &dentry->d_name, &fibh, &cfi); in udf_lookup()
319 inode = udf_iget(dir->i_sb, &loc); in udf_lookup()
327 static struct fileIdentDesc *udf_add_entry(struct inode *dir, in udf_add_entry() argument
332 struct super_block *sb = dir->i_sb; in udf_add_entry()
337 loff_t size = udf_ext0_offset(dir) + dir->i_size; in udf_add_entry()
371 f_pos = udf_ext0_offset(dir); in udf_add_entry()
373 fibh->soffset = fibh->eoffset = f_pos & (dir->i_sb->s_blocksize - 1); in udf_add_entry()
374 dinfo = UDF_I(dir); in udf_add_entry()
376 if (inode_bmap(dir, f_pos >> dir->i_sb->s_blocksize_bits, &epos, in udf_add_entry()
378 block = udf_get_lb_pblock(dir->i_sb, in udf_add_entry()
383 block = udf_get_lb_pblock(dir->i_sb, &eloc, offset); in udf_add_entry()
384 if ((++offset << dir->i_sb->s_blocksize_bits) < elen) { in udf_add_entry()
392 fibh->sbh = fibh->ebh = udf_tread(dir->i_sb, block); in udf_add_entry()
402 fi = udf_fileident_read(dir, &f_pos, fibh, cfi, &epos, &eloc, in udf_add_entry()
417 if (!udf_write_fi(dir, cfi, fi, fibh, NULL, in udf_add_entry()
435 fibh->soffset -= udf_ext0_offset(dir); in udf_add_entry()
436 fibh->eoffset -= udf_ext0_offset(dir); in udf_add_entry()
437 f_pos -= udf_ext0_offset(dir); in udf_add_entry()
442 udf_expand_dir_adinicb(dir, &block, err); in udf_add_entry()
446 epos.offset = udf_file_entry_alloc_offset(dir); in udf_add_entry()
448 udf_current_aext(dir, &epos, &eloc, &elen, 1); in udf_add_entry()
465 udf_ext0_offset(dir) + in udf_add_entry()
470 dir->i_sb->s_blocksize_bits); in udf_add_entry()
481 udf_write_aext(dir, &epos, &eloc, elen, 1); in udf_add_entry()
493 dir->i_sb->s_blocksize_bits); in udf_add_entry()
494 fibh->ebh = udf_bread(dir, in udf_add_entry()
495 f_pos >> dir->i_sb->s_blocksize_bits, 1, err); in udf_add_entry()
502 epos.offset = udf_file_entry_alloc_offset(dir); in udf_add_entry()
506 while (udf_next_aext(dir, &epos, &eloc, &elen, 1) == in udf_add_entry()
510 dir->i_sb->s_blocksize_bits); in udf_add_entry()
531 if (!udf_write_fi(dir, cfi, fi, fibh, NULL, name)) { in udf_add_entry()
532 dir->i_size += nfidlen; in udf_add_entry()
537 while (udf_next_aext(dir, &epos, &eloc, &elen, 1) == in udf_add_entry()
540 elen -= dinfo->i_lenExtents - dir->i_size; in udf_add_entry()
545 udf_write_aext(dir, &epos, &eloc, elen, 1); in udf_add_entry()
546 dinfo->i_lenExtents = dir->i_size; in udf_add_entry()
549 mark_inode_dirty(dir); in udf_add_entry()
582 struct inode *dir = d_inode(dentry->d_parent); in udf_add_nondir() local
587 fi = udf_add_entry(dir, dentry, &fibh, &cfi, &err); in udf_add_nondir()
597 udf_write_fi(dir, &cfi, fi, &fibh, NULL, NULL); in udf_add_nondir()
598 dir->i_ctime = dir->i_mtime = current_time(dir); in udf_add_nondir()
599 mark_inode_dirty(dir); in udf_add_nondir()
608 static int udf_create(struct inode *dir, struct dentry *dentry, umode_t mode, in udf_create() argument
611 struct inode *inode = udf_new_inode(dir, mode); in udf_create()
627 static int udf_tmpfile(struct inode *dir, struct dentry *dentry, umode_t mode) in udf_tmpfile() argument
629 struct inode *inode = udf_new_inode(dir, mode); in udf_tmpfile()
646 static int udf_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, in udf_mknod() argument
654 inode = udf_new_inode(dir, mode); in udf_mknod()
662 static int udf_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) in udf_mkdir() argument
668 struct udf_inode_info *dinfo = UDF_I(dir); in udf_mkdir()
671 inode = udf_new_inode(dir, S_IFDIR | mode); in udf_mkdir()
695 fi = udf_add_entry(dir, dentry, &fibh, &cfi, &err); in udf_mkdir()
707 udf_write_fi(dir, &cfi, fi, &fibh, NULL, NULL); in udf_mkdir()
708 inc_nlink(dir); in udf_mkdir()
709 dir->i_ctime = dir->i_mtime = current_time(dir); in udf_mkdir()
710 mark_inode_dirty(dir); in udf_mkdir()
721 static int empty_dir(struct inode *dir) in empty_dir() argument
726 loff_t size = udf_ext0_offset(dir) + dir->i_size; in empty_dir()
732 struct udf_inode_info *dinfo = UDF_I(dir); in empty_dir()
734 f_pos = udf_ext0_offset(dir); in empty_dir()
735 fibh.soffset = fibh.eoffset = f_pos & (dir->i_sb->s_blocksize - 1); in empty_dir()
739 else if (inode_bmap(dir, f_pos >> dir->i_sb->s_blocksize_bits, in empty_dir()
742 block = udf_get_lb_pblock(dir->i_sb, &eloc, offset); in empty_dir()
743 if ((++offset << dir->i_sb->s_blocksize_bits) < elen) { in empty_dir()
751 fibh.sbh = fibh.ebh = udf_tread(dir->i_sb, block); in empty_dir()
762 fi = udf_fileident_read(dir, &f_pos, &fibh, &cfi, &epos, &eloc, in empty_dir()
790 static int udf_rmdir(struct inode *dir, struct dentry *dentry) in udf_rmdir() argument
799 fi = udf_find_entry(dir, &dentry->d_name, &fibh, &cfi); in udf_rmdir()
808 if (udf_get_lb_pblock(dir->i_sb, &tloc, 0) != inode->i_ino) in udf_rmdir()
813 retval = udf_delete_entry(dir, fi, &fibh, &cfi); in udf_rmdir()
821 inode_dec_link_count(dir); in udf_rmdir()
822 inode->i_ctime = dir->i_ctime = dir->i_mtime = in udf_rmdir()
824 mark_inode_dirty(dir); in udf_rmdir()
835 static int udf_unlink(struct inode *dir, struct dentry *dentry) in udf_unlink() argument
845 fi = udf_find_entry(dir, &dentry->d_name, &fibh, &cfi); in udf_unlink()
855 if (udf_get_lb_pblock(dir->i_sb, &tloc, 0) != inode->i_ino) in udf_unlink()
863 retval = udf_delete_entry(dir, fi, &fibh, &cfi); in udf_unlink()
866 dir->i_ctime = dir->i_mtime = current_time(dir); in udf_unlink()
867 mark_inode_dirty(dir); in udf_unlink()
869 inode->i_ctime = dir->i_ctime; in udf_unlink()
881 static int udf_symlink(struct inode *dir, struct dentry *dentry, in udf_symlink() argument
884 struct inode *inode = udf_new_inode(dir, S_IFLNK | 0777); in udf_symlink()
895 struct super_block *sb = dir->i_sb; in udf_symlink()
1030 static int udf_link(struct dentry *old_dentry, struct inode *dir, in udf_link() argument
1038 fi = udf_add_entry(dir, dentry, &fibh, &cfi, &err); in udf_link()
1048 udf_write_fi(dir, &cfi, fi, &fibh, NULL, NULL); in udf_link()
1049 if (UDF_I(dir)->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) in udf_link()
1050 mark_inode_dirty(dir); in udf_link()
1058 dir->i_ctime = dir->i_mtime = current_time(dir); in udf_link()
1059 mark_inode_dirty(dir); in udf_link()