Loading fs/reiserfs/dir.c +2 −3 Original line number Diff line number Diff line Loading @@ -57,9 +57,8 @@ static inline bool is_privroot_deh(struct inode *dir, struct reiserfs_de_head *d deh->deh_objectid == INODE_PKEY(privroot->d_inode)->k_objectid); } int reiserfs_readdir_dentry(struct dentry *dentry, struct dir_context *ctx) int reiserfs_readdir_inode(struct inode *inode, struct dir_context *ctx) { struct inode *inode = dentry->d_inode; struct cpu_key pos_key; /* key of current position in the directory (key of directory entry) */ INITIALIZE_PATH(path_to_entry); struct buffer_head *bh; Loading Loading @@ -243,7 +242,7 @@ int reiserfs_readdir_dentry(struct dentry *dentry, struct dir_context *ctx) static int reiserfs_readdir(struct file *file, struct dir_context *ctx) { return reiserfs_readdir_dentry(file->f_path.dentry, ctx); return reiserfs_readdir_inode(file_inode(file), ctx); } /* compose directory item containing "." and ".." entries (entries are Loading fs/reiserfs/reiserfs.h +1 −1 Original line number Diff line number Diff line Loading @@ -2709,7 +2709,7 @@ extern const struct inode_operations reiserfs_dir_inode_operations; extern const struct inode_operations reiserfs_symlink_inode_operations; extern const struct inode_operations reiserfs_special_inode_operations; extern const struct file_operations reiserfs_dir_operations; int reiserfs_readdir_dentry(struct dentry *, struct dir_context *); int reiserfs_readdir_inode(struct inode *, struct dir_context *); /* tail_conversion.c */ int direct2indirect(struct reiserfs_transaction_handle *, struct inode *, Loading fs/reiserfs/xattr.c +12 −13 Original line number Diff line number Diff line Loading @@ -249,28 +249,27 @@ static int reiserfs_for_each_xattr(struct inode *inode, reiserfs_write_lock(inode->i_sb); buf.xadir = dir; err = reiserfs_readdir_dentry(dir, &buf.ctx); while ((err == 0 || err == -ENOSPC) && buf.count) { err = 0; for (i = 0; i < buf.count && buf.dentries[i]; i++) { int lerr = 0; while (1) { err = reiserfs_readdir_inode(dir->d_inode, &buf.ctx); if (err) break; if (!buf.count) break; for (i = 0; !err && i < buf.count && buf.dentries[i]; i++) { struct dentry *dentry = buf.dentries[i]; if (err == 0 && !S_ISDIR(dentry->d_inode->i_mode)) lerr = action(dentry, data); if (!S_ISDIR(dentry->d_inode->i_mode)) err = action(dentry, data); dput(dentry); buf.dentries[i] = NULL; err = lerr ?: err; } if (err) break; buf.count = 0; if (!err) err = reiserfs_readdir_dentry(dir, &buf.ctx); } mutex_unlock(&dir->d_inode->i_mutex); /* Clean up after a failed readdir */ cleanup_dentry_buf(&buf); if (!err) { Loading Loading @@ -868,7 +867,7 @@ ssize_t reiserfs_listxattr(struct dentry * dentry, char *buffer, size_t size) } mutex_lock_nested(&dir->d_inode->i_mutex, I_MUTEX_XATTR); err = reiserfs_readdir_dentry(dir, &buf.ctx); err = reiserfs_readdir_inode(dir->d_inode, &buf.ctx); mutex_unlock(&dir->d_inode->i_mutex); if (!err) Loading Loading
fs/reiserfs/dir.c +2 −3 Original line number Diff line number Diff line Loading @@ -57,9 +57,8 @@ static inline bool is_privroot_deh(struct inode *dir, struct reiserfs_de_head *d deh->deh_objectid == INODE_PKEY(privroot->d_inode)->k_objectid); } int reiserfs_readdir_dentry(struct dentry *dentry, struct dir_context *ctx) int reiserfs_readdir_inode(struct inode *inode, struct dir_context *ctx) { struct inode *inode = dentry->d_inode; struct cpu_key pos_key; /* key of current position in the directory (key of directory entry) */ INITIALIZE_PATH(path_to_entry); struct buffer_head *bh; Loading Loading @@ -243,7 +242,7 @@ int reiserfs_readdir_dentry(struct dentry *dentry, struct dir_context *ctx) static int reiserfs_readdir(struct file *file, struct dir_context *ctx) { return reiserfs_readdir_dentry(file->f_path.dentry, ctx); return reiserfs_readdir_inode(file_inode(file), ctx); } /* compose directory item containing "." and ".." entries (entries are Loading
fs/reiserfs/reiserfs.h +1 −1 Original line number Diff line number Diff line Loading @@ -2709,7 +2709,7 @@ extern const struct inode_operations reiserfs_dir_inode_operations; extern const struct inode_operations reiserfs_symlink_inode_operations; extern const struct inode_operations reiserfs_special_inode_operations; extern const struct file_operations reiserfs_dir_operations; int reiserfs_readdir_dentry(struct dentry *, struct dir_context *); int reiserfs_readdir_inode(struct inode *, struct dir_context *); /* tail_conversion.c */ int direct2indirect(struct reiserfs_transaction_handle *, struct inode *, Loading
fs/reiserfs/xattr.c +12 −13 Original line number Diff line number Diff line Loading @@ -249,28 +249,27 @@ static int reiserfs_for_each_xattr(struct inode *inode, reiserfs_write_lock(inode->i_sb); buf.xadir = dir; err = reiserfs_readdir_dentry(dir, &buf.ctx); while ((err == 0 || err == -ENOSPC) && buf.count) { err = 0; for (i = 0; i < buf.count && buf.dentries[i]; i++) { int lerr = 0; while (1) { err = reiserfs_readdir_inode(dir->d_inode, &buf.ctx); if (err) break; if (!buf.count) break; for (i = 0; !err && i < buf.count && buf.dentries[i]; i++) { struct dentry *dentry = buf.dentries[i]; if (err == 0 && !S_ISDIR(dentry->d_inode->i_mode)) lerr = action(dentry, data); if (!S_ISDIR(dentry->d_inode->i_mode)) err = action(dentry, data); dput(dentry); buf.dentries[i] = NULL; err = lerr ?: err; } if (err) break; buf.count = 0; if (!err) err = reiserfs_readdir_dentry(dir, &buf.ctx); } mutex_unlock(&dir->d_inode->i_mutex); /* Clean up after a failed readdir */ cleanup_dentry_buf(&buf); if (!err) { Loading Loading @@ -868,7 +867,7 @@ ssize_t reiserfs_listxattr(struct dentry * dentry, char *buffer, size_t size) } mutex_lock_nested(&dir->d_inode->i_mutex, I_MUTEX_XATTR); err = reiserfs_readdir_dentry(dir, &buf.ctx); err = reiserfs_readdir_inode(dir->d_inode, &buf.ctx); mutex_unlock(&dir->d_inode->i_mutex); if (!err) Loading