Lines Matching refs:dir

304 static int reiserfs_find_entry(struct inode *dir, const char *name, int namelen,
311 if (namelen > REISERFS_MAX_NAME(dir->i_sb->s_blocksize))
315 make_cpu_key(&key_to_search, dir,
316 get_third_component(dir->i_sb, name, namelen),
321 search_by_entry_key(dir->i_sb, &key_to_search,
324 reiserfs_error(dir->i_sb, "zam-7001", "io error");
352 static struct dentry *reiserfs_lookup(struct inode *dir, struct dentry *dentry,
360 if (REISERFS_MAX_NAME(dir->i_sb->s_blocksize) < dentry->d_name.len)
363 reiserfs_write_lock(dir->i_sb);
367 reiserfs_find_entry(dir, dentry->d_name.name, dentry->d_name.len,
371 inode = reiserfs_iget(dir->i_sb,
374 reiserfs_write_unlock(dir->i_sb);
383 if (IS_PRIVATE(dir)) {
388 reiserfs_write_unlock(dir->i_sb);
406 struct inode *dir = d_inode(child);
408 if (dir->i_nlink == 0) {
413 reiserfs_write_lock(dir->i_sb);
414 retval = reiserfs_find_entry(dir, "..", 2, &path_to_entry, &de);
417 reiserfs_write_unlock(dir->i_sb);
420 inode = reiserfs_iget(dir->i_sb, (struct cpu_key *)&de.de_dir_id);
421 reiserfs_write_unlock(dir->i_sb);
430 Does not mark dir inode dirty, do it after successesfull call to it */
433 struct inode *dir, const char *name, int namelen,
459 if (namelen > REISERFS_MAX_NAME(dir->i_sb->s_blocksize))
463 make_cpu_key(&entry_key, dir,
464 get_third_component(dir->i_sb, name, namelen),
477 (get_inode_sd_version(dir) ==
481 * fill buffer : directory entry head, name[, dir objectid | ,
482 * stat data | ,stat data, dir objectid ]
510 retval = reiserfs_find_entry(dir, name, namelen, &path, &de);
521 reiserfs_error(dir->i_sb, "zam-7002",
534 reiserfs_warning(dir->i_sb, "reiserfs-7010",
551 if (search_by_entry_key(dir->i_sb, &entry_key, &path, &de) !=
553 reiserfs_warning(dir->i_sb, "vs-7032",
566 reiserfs_paste_into_item(th, &path, &entry_key, dir, buffer,
575 dir->i_size += paste_size;
576 dir->i_mtime = dir->i_ctime = current_time(dir);
579 reiserfs_update_sd(th, dir);
606 static int new_inode_init(struct inode *inode, struct inode *dir, umode_t mode)
618 inode_init_owner(inode, dir, mode);
622 static int reiserfs_create(struct inode *dir, struct dentry *dentry, umode_t mode,
633 2 * (REISERFS_QUOTA_INIT_BLOCKS(dir->i_sb) +
634 REISERFS_QUOTA_TRANS_BLOCKS(dir->i_sb));
638 retval = dquot_initialize(dir);
642 if (!(inode = new_inode(dir->i_sb))) {
645 retval = new_inode_init(inode, dir, mode);
651 jbegin_count += reiserfs_cache_default_acl(dir);
652 retval = reiserfs_security_init(dir, inode, &dentry->d_name, &security);
658 reiserfs_write_lock(dir->i_sb);
660 retval = journal_begin(&th, dir->i_sb, jbegin_count);
667 reiserfs_new_inode(&th, dir, mode, NULL, 0 /*i_size */ , dentry,
677 reiserfs_add_entry(&th, dir, dentry->d_name.name,
691 reiserfs_update_inode_transaction(dir);
697 reiserfs_write_unlock(dir->i_sb);
702 static int reiserfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode,
715 2 * (REISERFS_QUOTA_INIT_BLOCKS(dir->i_sb) +
716 REISERFS_QUOTA_TRANS_BLOCKS(dir->i_sb));
718 retval = dquot_initialize(dir);
722 if (!(inode = new_inode(dir->i_sb))) {
725 retval = new_inode_init(inode, dir, mode);
731 jbegin_count += reiserfs_cache_default_acl(dir);
732 retval = reiserfs_security_init(dir, inode, &dentry->d_name, &security);
738 reiserfs_write_lock(dir->i_sb);
740 retval = journal_begin(&th, dir->i_sb, jbegin_count);
747 reiserfs_new_inode(&th, dir, mode, NULL, 0 /*i_size */ , dentry,
760 reiserfs_update_inode_transaction(dir);
763 reiserfs_add_entry(&th, dir, dentry->d_name.name,
781 reiserfs_write_unlock(dir->i_sb);
786 static int reiserfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
798 2 * (REISERFS_QUOTA_INIT_BLOCKS(dir->i_sb) +
799 REISERFS_QUOTA_TRANS_BLOCKS(dir->i_sb));
801 retval = dquot_initialize(dir);
810 REISERFS_I(dir)->new_packing_locality = 1;
813 if (!(inode = new_inode(dir->i_sb))) {
816 retval = new_inode_init(inode, dir, mode);
822 jbegin_count += reiserfs_cache_default_acl(dir);
823 retval = reiserfs_security_init(dir, inode, &dentry->d_name, &security);
829 reiserfs_write_lock(dir->i_sb);
831 retval = journal_begin(&th, dir->i_sb, jbegin_count);
841 INC_DIR_INODE_NLINK(dir)
843 retval = reiserfs_new_inode(&th, dir, mode, NULL /*symlink */,
844 old_format_only(dir->i_sb) ?
848 DEC_DIR_INODE_NLINK(dir)
853 reiserfs_update_inode_transaction(dir);
858 /* note, _this_ add_entry will not update dir's stat data */
860 reiserfs_add_entry(&th, dir, dentry->d_name.name,
865 DEC_DIR_INODE_NLINK(dir);
874 /* the above add_entry did not update dir's stat data */
875 reiserfs_update_sd(&th, dir);
880 reiserfs_write_unlock(dir->i_sb);
888 * we can cheat because an old format dir cannot have
889 * EMPTY_DIR_SIZE, and a new format dir cannot have
900 static int reiserfs_rmdir(struct inode *dir, struct dentry *dentry)
917 4 * REISERFS_QUOTA_TRANS_BLOCKS(dir->i_sb);
919 retval = dquot_initialize(dir);
923 reiserfs_write_lock(dir->i_sb);
924 retval = journal_begin(&th, dir->i_sb, jbegin_count);
930 reiserfs_find_entry(dir, dentry->d_name.name, dentry->d_name.len,
942 reiserfs_update_inode_transaction(dir);
956 /* cut entry from dir directory */
958 dir, NULL, /* page */
969 inode->i_ctime = dir->i_ctime = dir->i_mtime = current_time(dir);
972 DEC_DIR_INODE_NLINK(dir)
973 dir->i_size -= (DEH_SIZE + de.de_entrylen);
974 reiserfs_update_sd(&th, dir);
982 reiserfs_write_unlock(dir->i_sb);
993 reiserfs_write_unlock(dir->i_sb);
997 static int reiserfs_unlink(struct inode *dir, struct dentry *dentry)
1007 retval = dquot_initialize(dir);
1022 4 * REISERFS_QUOTA_TRANS_BLOCKS(dir->i_sb);
1024 reiserfs_write_lock(dir->i_sb);
1025 retval = journal_begin(&th, dir->i_sb, jbegin_count);
1031 reiserfs_find_entry(dir, dentry->d_name.name, dentry->d_name.len,
1041 reiserfs_update_inode_transaction(dir);
1067 reiserfs_cut_from_item(&th, &path, &de.de_entry_key, dir, NULL,
1076 dir->i_size -= (de.de_entrylen + DEH_SIZE);
1077 dir->i_ctime = dir->i_mtime = current_time(dir);
1078 reiserfs_update_sd(&th, dir);
1086 reiserfs_write_unlock(dir->i_sb);
1096 reiserfs_write_unlock(dir->i_sb);
1201 static int reiserfs_link(struct dentry *old_dentry, struct inode *dir,
1213 2 * REISERFS_QUOTA_TRANS_BLOCKS(dir->i_sb);
1215 retval = dquot_initialize(dir);
1219 reiserfs_write_lock(dir->i_sb);
1222 reiserfs_write_unlock(dir->i_sb);
1229 retval = journal_begin(&th, dir->i_sb, jbegin_count);
1232 reiserfs_write_unlock(dir->i_sb);
1238 reiserfs_add_entry(&th, dir, dentry->d_name.name,
1242 reiserfs_update_inode_transaction(dir);
1248 reiserfs_write_unlock(dir->i_sb);
1258 reiserfs_write_unlock(dir->i_sb);