diff options
| author | David S. Miller <davem@davemloft.net> | 2010-02-20 13:53:16 -0800 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2010-02-20 13:53:16 -0800 |
| commit | 198d2f63a6096fe575b696b13ba61b62c620266f (patch) | |
| tree | d0c2b0697370cc670029cd1eb2a80c35c71eac60 /drivers/md/dm-log-userspace-transfer.c | |
| parent | 0da2b300b91ddeb9944c3fb4faaf78c1c482c0af (diff) | |
| parent | 1f474646fdc36b457606bbcd6a3592e6cbd31ac4 (diff) | |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
Diffstat (limited to 'drivers/md/dm-log-userspace-transfer.c')
| -rw-r--r-- | drivers/md/dm-log-userspace-transfer.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/md/dm-log-userspace-transfer.c b/drivers/md/dm-log-userspace-transfer.c index 54abf9e303b7..f1c8cae70b4b 100644 --- a/drivers/md/dm-log-userspace-transfer.c +++ b/drivers/md/dm-log-userspace-transfer.c @@ -172,11 +172,15 @@ int dm_consult_userspace(const char *uuid, uint64_t luid, int request_type, { int r = 0; size_t dummy = 0; - int overhead_size = - sizeof(struct dm_ulog_request *) + sizeof(struct cn_msg); + int overhead_size = sizeof(struct dm_ulog_request) + sizeof(struct cn_msg); struct dm_ulog_request *tfr = prealloced_ulog_tfr; struct receiving_pkg pkg; + /* + * Given the space needed to hold the 'struct cn_msg' and + * 'struct dm_ulog_request' - do we have enough payload + * space remaining? + */ if (data_size > (DM_ULOG_PREALLOCED_SIZE - overhead_size)) { DMINFO("Size of tfr exceeds preallocated size"); return -EINVAL; @@ -191,7 +195,7 @@ resend: */ mutex_lock(&dm_ulog_lock); - memset(tfr, 0, DM_ULOG_PREALLOCED_SIZE - overhead_size); + memset(tfr, 0, DM_ULOG_PREALLOCED_SIZE - sizeof(struct cn_msg)); memcpy(tfr->uuid, uuid, DM_UUID_LEN); tfr->luid = luid; tfr->seq = dm_ulog_seq++; |
