diff options
-rw-r--r-- | fs/btrfs/ioctl.c | 12 | ||||
-rw-r--r-- | fs/btrfs/props.c | 12 | ||||
-rw-r--r-- | fs/btrfs/props.h | 5 | ||||
-rw-r--r-- | fs/btrfs/xattr.c | 2 |
4 files changed, 18 insertions, 13 deletions
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index c1566787a146..4d945b3d88e3 100644 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c | |||
@@ -284,8 +284,8 @@ static int btrfs_ioctl_setflags(struct file *file, void __user *arg) | |||
284 | binode->flags &= ~BTRFS_INODE_COMPRESS; | 284 | binode->flags &= ~BTRFS_INODE_COMPRESS; |
285 | binode->flags |= BTRFS_INODE_NOCOMPRESS; | 285 | binode->flags |= BTRFS_INODE_NOCOMPRESS; |
286 | 286 | ||
287 | ret = btrfs_set_prop(NULL, inode, "btrfs.compression", NULL, 0, | 287 | ret = btrfs_set_prop_trans(inode, "btrfs.compression", NULL, |
288 | 0); | 288 | 0, 0); |
289 | if (ret && ret != -ENODATA) | 289 | if (ret && ret != -ENODATA) |
290 | goto out_drop; | 290 | goto out_drop; |
291 | } else if (fsflags & FS_COMPR_FL) { | 291 | } else if (fsflags & FS_COMPR_FL) { |
@@ -303,14 +303,14 @@ static int btrfs_ioctl_setflags(struct file *file, void __user *arg) | |||
303 | if (!comp || comp[0] == 0) | 303 | if (!comp || comp[0] == 0) |
304 | comp = btrfs_compress_type2str(BTRFS_COMPRESS_ZLIB); | 304 | comp = btrfs_compress_type2str(BTRFS_COMPRESS_ZLIB); |
305 | 305 | ||
306 | ret = btrfs_set_prop(NULL, inode, "btrfs.compression", comp, | 306 | ret = btrfs_set_prop_trans(inode, "btrfs.compression", comp, |
307 | strlen(comp), 0); | 307 | strlen(comp), 0); |
308 | if (ret) | 308 | if (ret) |
309 | goto out_drop; | 309 | goto out_drop; |
310 | 310 | ||
311 | } else { | 311 | } else { |
312 | ret = btrfs_set_prop(NULL, inode, "btrfs.compression", NULL, 0, | 312 | ret = btrfs_set_prop_trans(inode, "btrfs.compression", NULL, |
313 | 0); | 313 | 0, 0); |
314 | if (ret && ret != -ENODATA) | 314 | if (ret && ret != -ENODATA) |
315 | goto out_drop; | 315 | goto out_drop; |
316 | binode->flags &= ~(BTRFS_INODE_COMPRESS | BTRFS_INODE_NOCOMPRESS); | 316 | binode->flags &= ~(BTRFS_INODE_COMPRESS | BTRFS_INODE_NOCOMPRESS); |
diff --git a/fs/btrfs/props.c b/fs/btrfs/props.c index c52cd78fea31..722ccf6bdd2b 100644 --- a/fs/btrfs/props.c +++ b/fs/btrfs/props.c | |||
@@ -55,9 +55,9 @@ find_prop_handler(const char *name, | |||
55 | return NULL; | 55 | return NULL; |
56 | } | 56 | } |
57 | 57 | ||
58 | int btrfs_set_prop(struct btrfs_trans_handle *trans, struct inode *inode, | 58 | static int btrfs_set_prop(struct btrfs_trans_handle *trans, struct inode *inode, |
59 | const char *name, const char *value, size_t value_len, | 59 | const char *name, const char *value, size_t value_len, |
60 | int flags) | 60 | int flags) |
61 | { | 61 | { |
62 | const struct prop_handler *handler; | 62 | const struct prop_handler *handler; |
63 | int ret; | 63 | int ret; |
@@ -100,6 +100,12 @@ int btrfs_set_prop(struct btrfs_trans_handle *trans, struct inode *inode, | |||
100 | return 0; | 100 | return 0; |
101 | } | 101 | } |
102 | 102 | ||
103 | int btrfs_set_prop_trans(struct inode *inode, const char *name, | ||
104 | const char *value, size_t value_len, int flags) | ||
105 | { | ||
106 | return btrfs_set_prop(NULL, inode, name, value, value_len, flags); | ||
107 | } | ||
108 | |||
103 | static int iterate_object_props(struct btrfs_root *root, | 109 | static int iterate_object_props(struct btrfs_root *root, |
104 | struct btrfs_path *path, | 110 | struct btrfs_path *path, |
105 | u64 objectid, | 111 | u64 objectid, |
diff --git a/fs/btrfs/props.h b/fs/btrfs/props.h index 9dbdae47cf27..b1a6b233b774 100644 --- a/fs/btrfs/props.h +++ b/fs/btrfs/props.h | |||
@@ -10,9 +10,8 @@ | |||
10 | 10 | ||
11 | void __init btrfs_props_init(void); | 11 | void __init btrfs_props_init(void); |
12 | 12 | ||
13 | int btrfs_set_prop(struct btrfs_trans_handle *trans, struct inode *inode, | 13 | int btrfs_set_prop_trans(struct inode *inode, const char *name, |
14 | const char *name, const char *value, size_t value_len, | 14 | const char *value, size_t value_len, int flags); |
15 | int flags); | ||
16 | 15 | ||
17 | int btrfs_load_inode_props(struct inode *inode, struct btrfs_path *path); | 16 | int btrfs_load_inode_props(struct inode *inode, struct btrfs_path *path); |
18 | 17 | ||
diff --git a/fs/btrfs/xattr.c b/fs/btrfs/xattr.c index 6971cbf286b5..69126d5b4d62 100644 --- a/fs/btrfs/xattr.c +++ b/fs/btrfs/xattr.c | |||
@@ -379,7 +379,7 @@ static int btrfs_xattr_handler_set_prop(const struct xattr_handler *handler, | |||
379 | size_t size, int flags) | 379 | size_t size, int flags) |
380 | { | 380 | { |
381 | name = xattr_full_name(handler, name); | 381 | name = xattr_full_name(handler, name); |
382 | return btrfs_set_prop(NULL, inode, name, value, size, flags); | 382 | return btrfs_set_prop_trans(inode, name, value, size, flags); |
383 | } | 383 | } |
384 | 384 | ||
385 | static const struct xattr_handler btrfs_security_xattr_handler = { | 385 | static const struct xattr_handler btrfs_security_xattr_handler = { |