diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-28 18:23:52 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-28 18:23:52 -0400 |
commit | f21ce8f8447c8be8847dadcfdbcc76b0d7365fa5 (patch) | |
tree | fb51d60060453aef9e776c7d3a31588609d34d76 /fs/xfs/xfs_attr.c | |
parent | 0c9aac08261512d70d7d4817bd222abca8b6bdd6 (diff) | |
parent | 5a5881cdeec2c019b5c9a307800218ee029f7f61 (diff) |
Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs
Pull XFS update (part 2) from Ben Myers:
"Fixes for tracing of xfs_name strings, flag handling in
open_by_handle, a log space hang with freeze/unfreeze, fstrim offset
calculations, a section mismatch with xfs_qm_exit, an oops in
xlog_recover_process_iunlinks, and a deadlock in xfs_rtfree_extent.
There are also additional trace points for attributes, and the
addition of a workqueue for allocation to work around kernel stack
size limitations."
* 'for-linus' of git://oss.sgi.com/xfs/xfs:
xfs: add lots of attribute trace points
xfs: Fix oops on IO error during xlog_recover_process_iunlinks()
xfs: fix fstrim offset calculations
xfs: Account log unmount transaction correctly
xfs: don't cache inodes read through bulkstat
xfs: trace xfs_name strings correctly
xfs: introduce an allocation workqueue
xfs: Fix open flag handling in open_by_handle code
xfs: fix deadlock in xfs_rtfree_extent
fs: xfs: fix section mismatch in linux-next
Diffstat (limited to 'fs/xfs/xfs_attr.c')
-rw-r--r-- | fs/xfs/xfs_attr.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/fs/xfs/xfs_attr.c b/fs/xfs/xfs_attr.c index 08b9ac644c31..65d61b948ead 100644 --- a/fs/xfs/xfs_attr.c +++ b/fs/xfs/xfs_attr.c | |||
@@ -853,6 +853,8 @@ xfs_attr_shortform_addname(xfs_da_args_t *args) | |||
853 | { | 853 | { |
854 | int newsize, forkoff, retval; | 854 | int newsize, forkoff, retval; |
855 | 855 | ||
856 | trace_xfs_attr_sf_addname(args); | ||
857 | |||
856 | retval = xfs_attr_shortform_lookup(args); | 858 | retval = xfs_attr_shortform_lookup(args); |
857 | if ((args->flags & ATTR_REPLACE) && (retval == ENOATTR)) { | 859 | if ((args->flags & ATTR_REPLACE) && (retval == ENOATTR)) { |
858 | return(retval); | 860 | return(retval); |
@@ -896,6 +898,8 @@ xfs_attr_leaf_addname(xfs_da_args_t *args) | |||
896 | xfs_dabuf_t *bp; | 898 | xfs_dabuf_t *bp; |
897 | int retval, error, committed, forkoff; | 899 | int retval, error, committed, forkoff; |
898 | 900 | ||
901 | trace_xfs_attr_leaf_addname(args); | ||
902 | |||
899 | /* | 903 | /* |
900 | * Read the (only) block in the attribute list in. | 904 | * Read the (only) block in the attribute list in. |
901 | */ | 905 | */ |
@@ -920,6 +924,9 @@ xfs_attr_leaf_addname(xfs_da_args_t *args) | |||
920 | xfs_da_brelse(args->trans, bp); | 924 | xfs_da_brelse(args->trans, bp); |
921 | return(retval); | 925 | return(retval); |
922 | } | 926 | } |
927 | |||
928 | trace_xfs_attr_leaf_replace(args); | ||
929 | |||
923 | args->op_flags |= XFS_DA_OP_RENAME; /* an atomic rename */ | 930 | args->op_flags |= XFS_DA_OP_RENAME; /* an atomic rename */ |
924 | args->blkno2 = args->blkno; /* set 2nd entry info*/ | 931 | args->blkno2 = args->blkno; /* set 2nd entry info*/ |
925 | args->index2 = args->index; | 932 | args->index2 = args->index; |
@@ -1090,6 +1097,8 @@ xfs_attr_leaf_removename(xfs_da_args_t *args) | |||
1090 | xfs_dabuf_t *bp; | 1097 | xfs_dabuf_t *bp; |
1091 | int error, committed, forkoff; | 1098 | int error, committed, forkoff; |
1092 | 1099 | ||
1100 | trace_xfs_attr_leaf_removename(args); | ||
1101 | |||
1093 | /* | 1102 | /* |
1094 | * Remove the attribute. | 1103 | * Remove the attribute. |
1095 | */ | 1104 | */ |
@@ -1223,6 +1232,8 @@ xfs_attr_node_addname(xfs_da_args_t *args) | |||
1223 | xfs_mount_t *mp; | 1232 | xfs_mount_t *mp; |
1224 | int committed, retval, error; | 1233 | int committed, retval, error; |
1225 | 1234 | ||
1235 | trace_xfs_attr_node_addname(args); | ||
1236 | |||
1226 | /* | 1237 | /* |
1227 | * Fill in bucket of arguments/results/context to carry around. | 1238 | * Fill in bucket of arguments/results/context to carry around. |
1228 | */ | 1239 | */ |
@@ -1249,6 +1260,9 @@ restart: | |||
1249 | } else if (retval == EEXIST) { | 1260 | } else if (retval == EEXIST) { |
1250 | if (args->flags & ATTR_CREATE) | 1261 | if (args->flags & ATTR_CREATE) |
1251 | goto out; | 1262 | goto out; |
1263 | |||
1264 | trace_xfs_attr_node_replace(args); | ||
1265 | |||
1252 | args->op_flags |= XFS_DA_OP_RENAME; /* atomic rename op */ | 1266 | args->op_flags |= XFS_DA_OP_RENAME; /* atomic rename op */ |
1253 | args->blkno2 = args->blkno; /* set 2nd entry info*/ | 1267 | args->blkno2 = args->blkno; /* set 2nd entry info*/ |
1254 | args->index2 = args->index; | 1268 | args->index2 = args->index; |
@@ -1480,6 +1494,8 @@ xfs_attr_node_removename(xfs_da_args_t *args) | |||
1480 | xfs_dabuf_t *bp; | 1494 | xfs_dabuf_t *bp; |
1481 | int retval, error, committed, forkoff; | 1495 | int retval, error, committed, forkoff; |
1482 | 1496 | ||
1497 | trace_xfs_attr_node_removename(args); | ||
1498 | |||
1483 | /* | 1499 | /* |
1484 | * Tie a string around our finger to remind us where we are. | 1500 | * Tie a string around our finger to remind us where we are. |
1485 | */ | 1501 | */ |