Pull xfs bugfixes from Ben Myers: "Here we have a bugfix for an off-by-one in the remote attribute verifier that results in a forced shutdown which you can hit with v5 superblock by creating a 64k xattr, and a fix for a missing destroy_work_on_stack() in the allocation worker. It's a bit late, but they are both fairly straightforward" * tag 'xfs-for-linus-v3.13-rc8' of git://oss.sgi.com/xfs/xfs: xfs: Calling destroy_work_on_stack() to pair with INIT_WORK_ONSTACK() xfs: fix off-by-one error in xfs_attr3_rmt_verify
Unified · Split
| @@ -110,7 +110,7 @@ xfs_attr3_rmt_verify( · 109 unmodified lines | |||
| 110 | if (be32_to_cpu(rmt->rm_bytes) > fsbsize - sizeof(*rmt)) | 110 | if (be32_to_cpu(rmt->rm_bytes) > fsbsize - sizeof(*rmt)) |
| 111 | return false; | 111 | return false; |
| 112 | if (be32_to_cpu(rmt->rm_offset) + | 112 | if (be32_to_cpu(rmt->rm_offset) + |
| 113 | be32_to_cpu(rmt->rm_bytes) >= XATTR_SIZE_MAX) | 113 | be32_to_cpu(rmt->rm_bytes) > XATTR_SIZE_MAX) |
| 114 | return false; | 114 | return false; |
| 115 | if (rmt->rm_owner == 0) | 115 | if (rmt->rm_owner == 0) |
| 116 | return false; | 116 | return false; |
| @@ -287,6 +287,7 @@ xfs_bmapi_allocate( · 286 unmodified lines | |||
| 287 | INIT_WORK_ONSTACK(&args->work, xfs_bmapi_allocate_worker); | 287 | INIT_WORK_ONSTACK(&args->work, xfs_bmapi_allocate_worker); |
| 288 | queue_work(xfs_alloc_wq, &args->work); | 288 | queue_work(xfs_alloc_wq, &args->work); |
| 289 | wait_for_completion(&done); | 289 | wait_for_completion(&done); |
| 290 | destroy_work_on_stack(&args->work); | ||
| 290 | return args->result; | 291 | return args->result; |
| 291 | } | 292 | } |
| 292 | 293 | ||