diff options
author | Steven Whitehouse <swhiteho@redhat.com> | 2009-08-26 19:41:32 +0200 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2009-08-26 19:41:32 +0200 |
commit | 40b78a322365aa1d87770200f7fc7de3b361c11a (patch) | |
tree | 9e33daa30113741d9ef716f3723ac1d9690e33cf /fs/gfs2/inode.c | |
parent | GFS2: Add explanation of extended attr on-disk format (diff) | |
download | linux-40b78a322365aa1d87770200f7fc7de3b361c11a.tar.xz linux-40b78a322365aa1d87770200f7fc7de3b361c11a.zip |
GFS2: Clean up of extended attribute support
This has been on my list for some time. We need to change the way
in which we handle extended attributes to allow faster file creation
times (by reducing the number of transactions required) and the
extended attribute code is the main obstacle to this.
In addition to that, the VFS provides a way to demultiplex the xattr
calls which we ought to be using, rather than rolling our own. This
patch changes the GFS2 code to use that VFS feature and as a result
the code shrinks by a couple of hundred lines or so, and becomes
easier to read.
I'm planning on doing further clean up work in this area, but this
patch is a good start. The cleaned up code also uses the more usual
"xattr" shorthand, I plan to eliminate the use of "eattr" eventually
and in the mean time it serves as a flag as to which bits of the code
have been updated.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/inode.c')
-rw-r--r-- | fs/gfs2/inode.c | 12 |
1 files changed, 1 insertions, 11 deletions
diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c index f9b4fe886540..f936d2d68138 100644 --- a/fs/gfs2/inode.c +++ b/fs/gfs2/inode.c @@ -924,7 +924,6 @@ static int gfs2_security_init(struct gfs2_inode *dip, struct gfs2_inode *ip) size_t len; void *value; char *name; - struct gfs2_ea_request er; err = security_inode_init_security(&ip->i_inode, &dip->i_inode, &name, &value, &len); @@ -935,16 +934,7 @@ static int gfs2_security_init(struct gfs2_inode *dip, struct gfs2_inode *ip) return err; } - memset(&er, 0, sizeof(struct gfs2_ea_request)); - - er.er_type = GFS2_EATYPE_SECURITY; - er.er_name = name; - er.er_data = value; - er.er_name_len = strlen(name); - er.er_data_len = len; - - err = gfs2_ea_set_i(ip, &er); - + err = gfs2_xattr_set(&ip->i_inode, GFS2_EATYPE_SECURITY, name, value, len, 0); kfree(value); kfree(name); |