tcmu: clean up the code and with one small fix
Remove useless blank line and code and at the same time add one error path to catch the errors. Reviewed-by: Mike Christie <mchristi@redhat.com> Signed-off-by: Xiubo Li <lixiubo@cmss.chinamobile.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
parent
b3743c71b7
commit
daf78c3051
|
@ -342,7 +342,6 @@ static inline bool tcmu_get_empty_block(struct tcmu_dev *udev,
|
||||||
|
|
||||||
page = radix_tree_lookup(&udev->data_blocks, dbi);
|
page = radix_tree_lookup(&udev->data_blocks, dbi);
|
||||||
if (!page) {
|
if (!page) {
|
||||||
|
|
||||||
if (atomic_add_return(1, &global_db_count) >
|
if (atomic_add_return(1, &global_db_count) >
|
||||||
TCMU_GLOBAL_MAX_BLOCKS) {
|
TCMU_GLOBAL_MAX_BLOCKS) {
|
||||||
atomic_dec(&global_db_count);
|
atomic_dec(&global_db_count);
|
||||||
|
@ -352,14 +351,11 @@ static inline bool tcmu_get_empty_block(struct tcmu_dev *udev,
|
||||||
/* try to get new page from the mm */
|
/* try to get new page from the mm */
|
||||||
page = alloc_page(GFP_KERNEL);
|
page = alloc_page(GFP_KERNEL);
|
||||||
if (!page)
|
if (!page)
|
||||||
return false;
|
goto err_alloc;
|
||||||
|
|
||||||
ret = radix_tree_insert(&udev->data_blocks, dbi, page);
|
ret = radix_tree_insert(&udev->data_blocks, dbi, page);
|
||||||
if (ret) {
|
if (ret)
|
||||||
__free_page(page);
|
goto err_insert;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dbi > udev->dbi_max)
|
if (dbi > udev->dbi_max)
|
||||||
|
@ -369,6 +365,11 @@ static inline bool tcmu_get_empty_block(struct tcmu_dev *udev,
|
||||||
tcmu_cmd_set_dbi(tcmu_cmd, dbi);
|
tcmu_cmd_set_dbi(tcmu_cmd, dbi);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
err_insert:
|
||||||
|
__free_page(page);
|
||||||
|
err_alloc:
|
||||||
|
atomic_dec(&global_db_count);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool tcmu_get_empty_blocks(struct tcmu_dev *udev,
|
static bool tcmu_get_empty_blocks(struct tcmu_dev *udev,
|
||||||
|
@ -527,7 +528,7 @@ static inline size_t get_block_offset_user(struct tcmu_dev *dev,
|
||||||
DATA_BLOCK_SIZE - remaining;
|
DATA_BLOCK_SIZE - remaining;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline size_t iov_tail(struct tcmu_dev *udev, struct iovec *iov)
|
static inline size_t iov_tail(struct iovec *iov)
|
||||||
{
|
{
|
||||||
return (size_t)iov->iov_base + iov->iov_len;
|
return (size_t)iov->iov_base + iov->iov_len;
|
||||||
}
|
}
|
||||||
|
@ -566,7 +567,7 @@ static int scatter_data_area(struct tcmu_dev *udev,
|
||||||
to += offset;
|
to += offset;
|
||||||
|
|
||||||
if (*iov_cnt != 0 &&
|
if (*iov_cnt != 0 &&
|
||||||
to_offset == iov_tail(udev, *iov)) {
|
to_offset == iov_tail(*iov)) {
|
||||||
(*iov)->iov_len += copy_bytes;
|
(*iov)->iov_len += copy_bytes;
|
||||||
} else {
|
} else {
|
||||||
new_iov(iov, iov_cnt, udev);
|
new_iov(iov, iov_cnt, udev);
|
||||||
|
@ -722,10 +723,7 @@ static bool is_ring_space_avail(struct tcmu_dev *udev, struct tcmu_cmd *cmd,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!tcmu_get_empty_blocks(udev, cmd))
|
return tcmu_get_empty_blocks(udev, cmd);
|
||||||
return false;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline size_t tcmu_cmd_get_base_cmd_size(size_t iov_cnt)
|
static inline size_t tcmu_cmd_get_base_cmd_size(size_t iov_cnt)
|
||||||
|
|
Loading…
Reference in New Issue