git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'reiserfs/kill-bkl' of git://git.kernel.org/pub/scm/linux/kernel/git...
[pandora-kernel.git]
/
fs
/
reiserfs
/
xattr.c
diff --git
a/fs/reiserfs/xattr.c
b/fs/reiserfs/xattr.c
index
7fee995
..
81f09fa
100644
(file)
--- a/
fs/reiserfs/xattr.c
+++ b/
fs/reiserfs/xattr.c
@@
-48,6
+48,7
@@
#include <net/checksum.h>
#include <linux/stat.h>
#include <linux/quotaops.h>
#include <net/checksum.h>
#include <linux/stat.h>
#include <linux/quotaops.h>
+#include <linux/security.h>
#define PRIVROOT_NAME ".reiserfs_priv"
#define XAROOT_NAME "xattrs"
#define PRIVROOT_NAME ".reiserfs_priv"
#define XAROOT_NAME "xattrs"
@@
-750,15
+751,14
@@
ssize_t
reiserfs_getxattr(struct dentry * dentry, const char *name, void *buffer,
size_t size)
{
reiserfs_getxattr(struct dentry * dentry, const char *name, void *buffer,
size_t size)
{
- struct inode *inode = dentry->d_inode;
struct xattr_handler *handler;
struct xattr_handler *handler;
- handler = find_xattr_handler_prefix(
inode->i
_sb->s_xattr, name);
+ handler = find_xattr_handler_prefix(
dentry->d
_sb->s_xattr, name);
- if (!handler || get_inode_sd_version(inode) == STAT_DATA_V1)
+ if (!handler || get_inode_sd_version(
dentry->d_
inode) == STAT_DATA_V1)
return -EOPNOTSUPP;
return -EOPNOTSUPP;
- return handler->get(
inode, name, buffer, size
);
+ return handler->get(
dentry, name, buffer, size, handler->flags
);
}
/*
}
/*
@@
-770,15
+770,14
@@
int
reiserfs_setxattr(struct dentry *dentry, const char *name, const void *value,
size_t size, int flags)
{
reiserfs_setxattr(struct dentry *dentry, const char *name, const void *value,
size_t size, int flags)
{
- struct inode *inode = dentry->d_inode;
struct xattr_handler *handler;
struct xattr_handler *handler;
- handler = find_xattr_handler_prefix(
inode->i
_sb->s_xattr, name);
+ handler = find_xattr_handler_prefix(
dentry->d
_sb->s_xattr, name);
- if (!handler || get_inode_sd_version(inode) == STAT_DATA_V1)
+ if (!handler || get_inode_sd_version(
dentry->d_
inode) == STAT_DATA_V1)
return -EOPNOTSUPP;
return -EOPNOTSUPP;
- return handler->set(
inode, name, value, size,
flags);
+ return handler->set(
dentry, name, value, size, flags, handler->
flags);
}
/*
}
/*
@@
-788,21
+787,20
@@
reiserfs_setxattr(struct dentry *dentry, const char *name, const void *value,
*/
int reiserfs_removexattr(struct dentry *dentry, const char *name)
{
*/
int reiserfs_removexattr(struct dentry *dentry, const char *name)
{
- struct inode *inode = dentry->d_inode;
struct xattr_handler *handler;
struct xattr_handler *handler;
- handler = find_xattr_handler_prefix(
inode->i
_sb->s_xattr, name);
+ handler = find_xattr_handler_prefix(
dentry->d
_sb->s_xattr, name);
- if (!handler || get_inode_sd_version(inode) == STAT_DATA_V1)
+ if (!handler || get_inode_sd_version(
dentry->d_
inode) == STAT_DATA_V1)
return -EOPNOTSUPP;
return -EOPNOTSUPP;
- return handler->set(
inode, name, NULL, 0, XATTR_REPLACE
);
+ return handler->set(
dentry, name, NULL, 0, XATTR_REPLACE, handler->flags
);
}
struct listxattr_buf {
size_t size;
size_t pos;
char *buf;
}
struct listxattr_buf {
size_t size;
size_t pos;
char *buf;
- struct
inode *inode
;
+ struct
dentry *dentry
;
};
static int listxattr_filler(void *buf, const char *name, int namelen,
};
static int listxattr_filler(void *buf, const char *name, int namelen,
@@
-813,17
+811,19
@@
static int listxattr_filler(void *buf, const char *name, int namelen,
if (name[0] != '.' ||
(namelen != 1 && (name[1] != '.' || namelen != 2))) {
struct xattr_handler *handler;
if (name[0] != '.' ||
(namelen != 1 && (name[1] != '.' || namelen != 2))) {
struct xattr_handler *handler;
- handler = find_xattr_handler_prefix(b->
inode->i
_sb->s_xattr,
+ handler = find_xattr_handler_prefix(b->
dentry->d
_sb->s_xattr,
name);
if (!handler) /* Unsupported xattr name */
return 0;
if (b->buf) {
name);
if (!handler) /* Unsupported xattr name */
return 0;
if (b->buf) {
- size = handler->list(b->inode, b->buf + b->pos,
- b->size, name, namelen);
+ size = handler->list(b->dentry, b->buf + b->pos,
+ b->size, name, namelen,
+ handler->flags);
if (size > b->size)
return -ERANGE;
} else {
if (size > b->size)
return -ERANGE;
} else {
- size = handler->list(b->inode, NULL, 0, name, namelen);
+ size = handler->list(b->dentry, NULL, 0, name,
+ namelen, handler->flags);
}
b->pos += size;
}
b->pos += size;
@@
-844,7
+844,7
@@
ssize_t reiserfs_listxattr(struct dentry * dentry, char *buffer, size_t size)
int err = 0;
loff_t pos = 0;
struct listxattr_buf buf = {
int err = 0;
loff_t pos = 0;
struct listxattr_buf buf = {
- .
inode = dentry->d_inode
,
+ .
dentry = dentry
,
.buf = buffer,
.size = buffer ? size : 0,
};
.buf = buffer,
.size = buffer ? size : 0,
};