diff options
author | Nicholas Bellinger <nab@linux-iscsi.org> | 2015-02-11 18:34:40 -0800 |
---|---|---|
committer | Sasha Levin <sasha.levin@oracle.com> | 2015-03-14 15:37:18 -0400 |
commit | aff40baf1dc0c562918b866e66274c94b0f87c23 (patch) | |
tree | 4f6af922a5994a026005a4e03e2a4571fc913c79 /include | |
parent | e12d499e9a51646d5ded2c1d108a3f2ff838cc88 (diff) | |
download | lwn-aff40baf1dc0c562918b866e66274c94b0f87c23.tar.gz lwn-aff40baf1dc0c562918b866e66274c94b0f87c23.zip |
target: Fix PR_APTPL_BUF_LEN buffer size limitation
commit f161d4b44d7cc1dc66b53365215227db356378b1 upstream.
This patch addresses the original PR_APTPL_BUF_LEN = 8k limitiation
for write-out of PR APTPL metadata that Martin has recently been
running into.
It changes core_scsi3_update_and_write_aptpl() to use vzalloc'ed
memory instead of kzalloc, and increases the default hardcoded
length to 256k.
It also adds logic in core_scsi3_update_and_write_aptpl() to double
the original length upon core_scsi3_update_aptpl_buf() failure, and
retries until the vzalloc'ed buffer is large enough to accommodate
the outgoing APTPL metadata.
Reported-by: Martin Svec <martin.svec@zoner.cz>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/target/target_core_base.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/target/target_core_base.h b/include/target/target_core_base.h index 23c518a0340c..1fbd69cfd0b7 100644 --- a/include/target/target_core_base.h +++ b/include/target/target_core_base.h @@ -409,7 +409,7 @@ struct t10_reservation { /* Activate Persistence across Target Power Loss enabled * for SCSI device */ int pr_aptpl_active; -#define PR_APTPL_BUF_LEN 8192 +#define PR_APTPL_BUF_LEN 262144 u32 pr_generation; spinlock_t registration_lock; spinlock_t aptpl_reg_lock; |