Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 138850
b: refs/heads/master
c: f437c52
h: refs/heads/master
v: v3
  • Loading branch information
Jeff Mahoney authored and Linus Torvalds committed Mar 30, 2009
1 parent bdda241 commit ee6d950
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 13 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 0030b64570c862f04c1550ba4a0bf7a9c128162a
refs/heads/master: f437c529e3cd4853c1edff6fe3b191ad32304e8f
20 changes: 8 additions & 12 deletions trunk/fs/reiserfs/xattr.c
Original file line number Diff line number Diff line change
Expand Up @@ -420,10 +420,8 @@ reiserfs_xattr_set(struct inode *inode, const char *name, const void *buffer,
struct dentry *dentry;
struct page *page;
char *data;
struct address_space *mapping;
size_t file_pos = 0;
size_t buffer_pos = 0;
struct inode *xinode;
struct iattr newattrs;
__u32 xahash = 0;

Expand All @@ -441,11 +439,10 @@ reiserfs_xattr_set(struct inode *inode, const char *name, const void *buffer,
goto out;
}

xinode = dentry->d_inode;
REISERFS_I(inode)->i_flags |= i_has_xattr_dir;

/* we need to copy it off.. */
if (xinode->i_nlink > 1) {
if (dentry->d_inode->i_nlink > 1) {
dput(dentry);
err = reiserfs_xattr_del(inode, name);
if (err < 0)
Expand All @@ -459,12 +456,11 @@ reiserfs_xattr_set(struct inode *inode, const char *name, const void *buffer,
/* Resize it so we're ok to write there */
newattrs.ia_size = buffer_size;
newattrs.ia_valid = ATTR_SIZE | ATTR_CTIME;
mutex_lock_nested(&xinode->i_mutex, I_MUTEX_XATTR);
mutex_lock_nested(&dentry->d_inode->i_mutex, I_MUTEX_XATTR);
err = notify_change(dentry, &newattrs);
if (err)
goto out_filp;

mapping = xinode->i_mapping;
while (buffer_pos < buffer_size || buffer_pos == 0) {
size_t chunk;
size_t skip = 0;
Expand All @@ -474,7 +470,8 @@ reiserfs_xattr_set(struct inode *inode, const char *name, const void *buffer,
else
chunk = buffer_size - buffer_pos;

page = reiserfs_get_page(xinode, file_pos >> PAGE_CACHE_SHIFT);
page = reiserfs_get_page(dentry->d_inode,
file_pos >> PAGE_CACHE_SHIFT);
if (IS_ERR(page)) {
err = PTR_ERR(page);
goto out_filp;
Expand Down Expand Up @@ -521,7 +518,7 @@ reiserfs_xattr_set(struct inode *inode, const char *name, const void *buffer,
}

out_filp:
mutex_unlock(&xinode->i_mutex);
mutex_unlock(&dentry->d_inode->i_mutex);
dput(dentry);

out:
Expand All @@ -541,7 +538,6 @@ reiserfs_xattr_get(const struct inode *inode, const char *name, void *buffer,
size_t file_pos = 0;
size_t buffer_pos = 0;
struct page *page;
struct inode *xinode;
__u32 hash = 0;

if (name == NULL)
Expand All @@ -558,8 +554,7 @@ reiserfs_xattr_get(const struct inode *inode, const char *name, void *buffer,
goto out;
}

xinode = dentry->d_inode;
isize = xinode->i_size;
isize = i_size_read(dentry->d_inode);
REISERFS_I(inode)->i_flags |= i_has_xattr_dir;

/* Just return the size needed */
Expand All @@ -582,7 +577,8 @@ reiserfs_xattr_get(const struct inode *inode, const char *name, void *buffer,
else
chunk = isize - file_pos;

page = reiserfs_get_page(xinode, file_pos >> PAGE_CACHE_SHIFT);
page = reiserfs_get_page(dentry->d_inode,
file_pos >> PAGE_CACHE_SHIFT);
if (IS_ERR(page)) {
err = PTR_ERR(page);
goto out_dput;
Expand Down

0 comments on commit ee6d950

Please sign in to comment.