Lines Matching refs:dir
283 static int reiserfs_find_entry(struct inode *dir, const char *name, int namelen, in reiserfs_find_entry() argument
290 if (namelen > REISERFS_MAX_NAME(dir->i_sb->s_blocksize)) in reiserfs_find_entry()
294 make_cpu_key(&key_to_search, dir, in reiserfs_find_entry()
295 get_third_component(dir->i_sb, name, namelen), in reiserfs_find_entry()
300 search_by_entry_key(dir->i_sb, &key_to_search, in reiserfs_find_entry()
303 reiserfs_warning(dir->i_sb, "zam-7001: io error in %s", in reiserfs_find_entry()
326 static struct dentry *reiserfs_lookup(struct inode *dir, struct dentry *dentry, in reiserfs_lookup() argument
334 if (REISERFS_MAX_NAME(dir->i_sb->s_blocksize) < dentry->d_name.len) in reiserfs_lookup()
337 reiserfs_write_lock(dir->i_sb); in reiserfs_lookup()
340 reiserfs_find_entry(dir, dentry->d_name.name, dentry->d_name.len, in reiserfs_lookup()
345 if (reiserfs_xattrs(dir->i_sb) && in reiserfs_lookup()
346 !old_format_only(dir->i_sb) && in reiserfs_lookup()
347 REISERFS_SB(dir->i_sb)->priv_root && in reiserfs_lookup()
348 REISERFS_SB(dir->i_sb)->priv_root->d_inode && in reiserfs_lookup()
351 (REISERFS_SB(dir->i_sb)->priv_root->d_inode)-> in reiserfs_lookup()
353 reiserfs_write_unlock(dir->i_sb); in reiserfs_lookup()
358 reiserfs_iget(dir->i_sb, (struct cpu_key *)&(de.de_dir_id)); in reiserfs_lookup()
360 reiserfs_write_unlock(dir->i_sb); in reiserfs_lookup()
365 if (is_reiserfs_priv_object(dir)) in reiserfs_lookup()
368 reiserfs_write_unlock(dir->i_sb); in reiserfs_lookup()
386 struct inode *dir = child->d_inode; in reiserfs_get_parent() local
388 if (dir->i_nlink == 0) { in reiserfs_get_parent()
393 reiserfs_write_lock(dir->i_sb); in reiserfs_get_parent()
394 retval = reiserfs_find_entry(dir, "..", 2, &path_to_entry, &de); in reiserfs_get_parent()
397 reiserfs_write_unlock(dir->i_sb); in reiserfs_get_parent()
400 inode = reiserfs_iget(dir->i_sb, (struct cpu_key *)&(de.de_dir_id)); in reiserfs_get_parent()
401 reiserfs_write_unlock(dir->i_sb); in reiserfs_get_parent()
413 struct inode *dir, const char *name, int namelen, in reiserfs_add_entry() argument
434 if (namelen > REISERFS_MAX_NAME(dir->i_sb->s_blocksize)) in reiserfs_add_entry()
438 make_cpu_key(&entry_key, dir, in reiserfs_add_entry()
439 get_third_component(dir->i_sb, name, namelen), in reiserfs_add_entry()
452 (get_inode_sd_version(dir) == in reiserfs_add_entry()
476 retval = reiserfs_find_entry(dir, name, namelen, &path, &de); in reiserfs_add_entry()
487 reiserfs_warning(dir->i_sb, in reiserfs_add_entry()
501 reiserfs_warning(dir->i_sb, in reiserfs_add_entry()
516 if (search_by_entry_key(dir->i_sb, &entry_key, &path, &de) != in reiserfs_add_entry()
518 reiserfs_warning(dir->i_sb, in reiserfs_add_entry()
532 reiserfs_paste_into_item(th, &path, &entry_key, dir, buffer, in reiserfs_add_entry()
541 dir->i_size += paste_size; in reiserfs_add_entry()
542 dir->i_mtime = dir->i_ctime = CURRENT_TIME_SEC; in reiserfs_add_entry()
545 reiserfs_update_sd(th, dir); in reiserfs_add_entry()
570 static int new_inode_init(struct inode *inode, struct inode *dir, int mode) in new_inode_init() argument
582 if (dir->i_mode & S_ISGID) { in new_inode_init()
583 inode->i_gid = dir->i_gid; in new_inode_init()
593 static int reiserfs_create(struct inode *dir, struct dentry *dentry, int mode, in reiserfs_create() argument
601 2 * (REISERFS_QUOTA_INIT_BLOCKS(dir->i_sb) + in reiserfs_create()
602 REISERFS_QUOTA_TRANS_BLOCKS(dir->i_sb)); in reiserfs_create()
606 if (!(inode = new_inode(dir->i_sb))) { in reiserfs_create()
609 new_inode_init(inode, dir, mode); in reiserfs_create()
611 locked = reiserfs_cache_default_acl(dir); in reiserfs_create()
613 reiserfs_write_lock(dir->i_sb); in reiserfs_create()
616 reiserfs_write_lock_xattrs(dir->i_sb); in reiserfs_create()
618 retval = journal_begin(&th, dir->i_sb, jbegin_count); in reiserfs_create()
625 reiserfs_new_inode(&th, dir, mode, NULL, 0 /*i_size */ , dentry, in reiserfs_create()
631 reiserfs_write_unlock_xattrs(dir->i_sb); in reiserfs_create()
640 reiserfs_add_entry(&th, dir, dentry->d_name.name, in reiserfs_create()
646 err = journal_end(&th, dir->i_sb, jbegin_count); in reiserfs_create()
654 reiserfs_update_inode_transaction(dir); in reiserfs_create()
658 retval = journal_end(&th, dir->i_sb, jbegin_count); in reiserfs_create()
662 reiserfs_write_unlock_xattrs(dir->i_sb); in reiserfs_create()
663 reiserfs_write_unlock(dir->i_sb); in reiserfs_create()
667 static int reiserfs_mknod(struct inode *dir, struct dentry *dentry, int mode, in reiserfs_mknod() argument
676 2 * (REISERFS_QUOTA_INIT_BLOCKS(dir->i_sb) + in reiserfs_mknod()
677 REISERFS_QUOTA_TRANS_BLOCKS(dir->i_sb)); in reiserfs_mknod()
683 if (!(inode = new_inode(dir->i_sb))) { in reiserfs_mknod()
686 new_inode_init(inode, dir, mode); in reiserfs_mknod()
688 locked = reiserfs_cache_default_acl(dir); in reiserfs_mknod()
690 reiserfs_write_lock(dir->i_sb); in reiserfs_mknod()
693 reiserfs_write_lock_xattrs(dir->i_sb); in reiserfs_mknod()
695 retval = journal_begin(&th, dir->i_sb, jbegin_count); in reiserfs_mknod()
702 reiserfs_new_inode(&th, dir, mode, NULL, 0 /*i_size */ , dentry, in reiserfs_mknod()
709 reiserfs_write_unlock_xattrs(dir->i_sb); in reiserfs_mknod()
720 reiserfs_update_inode_transaction(dir); in reiserfs_mknod()
723 reiserfs_add_entry(&th, dir, dentry->d_name.name, in reiserfs_mknod()
729 err = journal_end(&th, dir->i_sb, jbegin_count); in reiserfs_mknod()
739 retval = journal_end(&th, dir->i_sb, jbegin_count); in reiserfs_mknod()
743 reiserfs_write_unlock_xattrs(dir->i_sb); in reiserfs_mknod()
744 reiserfs_write_unlock(dir->i_sb); in reiserfs_mknod()
748 static int reiserfs_mkdir(struct inode *dir, struct dentry *dentry, int mode) in reiserfs_mkdir() argument
756 2 * (REISERFS_QUOTA_INIT_BLOCKS(dir->i_sb) + in reiserfs_mkdir()
757 REISERFS_QUOTA_TRANS_BLOCKS(dir->i_sb)); in reiserfs_mkdir()
762 REISERFS_I(dir)->new_packing_locality = 1; in reiserfs_mkdir()
765 if (!(inode = new_inode(dir->i_sb))) { in reiserfs_mkdir()
768 new_inode_init(inode, dir, mode); in reiserfs_mkdir()
770 locked = reiserfs_cache_default_acl(dir); in reiserfs_mkdir()
772 reiserfs_write_lock(dir->i_sb); in reiserfs_mkdir()
774 reiserfs_write_lock_xattrs(dir->i_sb); in reiserfs_mkdir()
776 retval = journal_begin(&th, dir->i_sb, jbegin_count); in reiserfs_mkdir()
785 INC_DIR_INODE_NLINK(dir) in reiserfs_mkdir()
787 retval = reiserfs_new_inode(&th, dir, mode, NULL /*symlink */ , in reiserfs_mkdir()
788 old_format_only(dir->i_sb) ? in reiserfs_mkdir()
792 dir->i_nlink--; in reiserfs_mkdir()
797 reiserfs_write_unlock_xattrs(dir->i_sb); in reiserfs_mkdir()
802 reiserfs_update_inode_transaction(dir); in reiserfs_mkdir()
809 reiserfs_add_entry(&th, dir, dentry->d_name.name, in reiserfs_mkdir()
814 DEC_DIR_INODE_NLINK(dir); in reiserfs_mkdir()
816 err = journal_end(&th, dir->i_sb, jbegin_count); in reiserfs_mkdir()
824 reiserfs_update_sd(&th, dir); in reiserfs_mkdir()
828 retval = journal_end(&th, dir->i_sb, jbegin_count); in reiserfs_mkdir()
831 reiserfs_write_unlock_xattrs(dir->i_sb); in reiserfs_mkdir()
832 reiserfs_write_unlock(dir->i_sb); in reiserfs_mkdir()
850 static int reiserfs_rmdir(struct inode *dir, struct dentry *dentry) in reiserfs_rmdir() argument
865 4 * REISERFS_QUOTA_TRANS_BLOCKS(dir->i_sb); in reiserfs_rmdir()
867 reiserfs_write_lock(dir->i_sb); in reiserfs_rmdir()
868 retval = journal_begin(&th, dir->i_sb, jbegin_count); in reiserfs_rmdir()
874 reiserfs_find_entry(dir, dentry->d_name.name, dentry->d_name.len, in reiserfs_rmdir()
886 reiserfs_update_inode_transaction(dir); in reiserfs_rmdir()
900 retval = reiserfs_cut_from_item(&th, &path, &(de.de_entry_key), dir, NULL, /* page */ in reiserfs_rmdir()
910 inode->i_ctime = dir->i_ctime = dir->i_mtime = CURRENT_TIME_SEC; in reiserfs_rmdir()
913 DEC_DIR_INODE_NLINK(dir) in reiserfs_rmdir()
914 dir->i_size -= (DEH_SIZE + de.de_entrylen); in reiserfs_rmdir()
915 reiserfs_update_sd(&th, dir); in reiserfs_rmdir()
920 retval = journal_end(&th, dir->i_sb, jbegin_count); in reiserfs_rmdir()
923 reiserfs_write_unlock(dir->i_sb); in reiserfs_rmdir()
931 err = journal_end(&th, dir->i_sb, jbegin_count); in reiserfs_rmdir()
932 reiserfs_write_unlock(dir->i_sb); in reiserfs_rmdir()
936 static int reiserfs_unlink(struct inode *dir, struct dentry *dentry) in reiserfs_unlink() argument
954 4 * REISERFS_QUOTA_TRANS_BLOCKS(dir->i_sb); in reiserfs_unlink()
956 reiserfs_write_lock(dir->i_sb); in reiserfs_unlink()
957 retval = journal_begin(&th, dir->i_sb, jbegin_count); in reiserfs_unlink()
963 reiserfs_find_entry(dir, dentry->d_name.name, dentry->d_name.len, in reiserfs_unlink()
973 reiserfs_update_inode_transaction(dir); in reiserfs_unlink()
999 reiserfs_cut_from_item(&th, &path, &(de.de_entry_key), dir, NULL, in reiserfs_unlink()
1008 dir->i_size -= (de.de_entrylen + DEH_SIZE); in reiserfs_unlink()
1009 dir->i_ctime = dir->i_mtime = CURRENT_TIME_SEC; in reiserfs_unlink()
1010 reiserfs_update_sd(&th, dir); in reiserfs_unlink()
1016 retval = journal_end(&th, dir->i_sb, jbegin_count); in reiserfs_unlink()
1018 reiserfs_write_unlock(dir->i_sb); in reiserfs_unlink()
1023 err = journal_end(&th, dir->i_sb, jbegin_count); in reiserfs_unlink()
1028 reiserfs_write_unlock(dir->i_sb); in reiserfs_unlink()
1118 static int reiserfs_link(struct dentry *old_dentry, struct inode *dir, in reiserfs_link() argument
1127 2 * REISERFS_QUOTA_TRANS_BLOCKS(dir->i_sb); in reiserfs_link()
1129 reiserfs_write_lock(dir->i_sb); in reiserfs_link()
1132 reiserfs_write_unlock(dir->i_sb); in reiserfs_link()
1136 reiserfs_write_unlock(dir->i_sb); in reiserfs_link()
1143 retval = journal_begin(&th, dir->i_sb, jbegin_count); in reiserfs_link()
1146 reiserfs_write_unlock(dir->i_sb); in reiserfs_link()
1152 reiserfs_add_entry(&th, dir, dentry->d_name.name, in reiserfs_link()
1156 reiserfs_update_inode_transaction(dir); in reiserfs_link()
1161 err = journal_end(&th, dir->i_sb, jbegin_count); in reiserfs_link()
1162 reiserfs_write_unlock(dir->i_sb); in reiserfs_link()
1171 retval = journal_end(&th, dir->i_sb, jbegin_count); in reiserfs_link()
1172 reiserfs_write_unlock(dir->i_sb); in reiserfs_link()