commit
52a83fb6c9
@ -1,49 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
# Copyright(c) 2012-2021 Intel Corporation
|
|
||||||
# SPDX-License-Identifier: BSD-3-Clause
|
|
||||||
#
|
|
||||||
|
|
||||||
. $(dirname $3)/conf_framework
|
|
||||||
|
|
||||||
check() {
|
|
||||||
cur_name=$(basename $2)
|
|
||||||
config_file_path=$1
|
|
||||||
if compile_module $cur_name "blk_rq_set_block_pc(NULL)" "linux/blkdev.h"
|
|
||||||
then
|
|
||||||
echo $cur_name "1" >> $config_file_path
|
|
||||||
else
|
|
||||||
echo $cur_name "2" >> $config_file_path
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
apply() {
|
|
||||||
case "$1" in
|
|
||||||
"1")
|
|
||||||
add_function "
|
|
||||||
static inline void cas_blk_rq_set_block_pc(struct request *rq)
|
|
||||||
{
|
|
||||||
blk_rq_set_block_pc(rq);
|
|
||||||
}" ;;
|
|
||||||
"2")
|
|
||||||
add_function "
|
|
||||||
#include <linux/blk-mq.h>
|
|
||||||
#include <scsi/scsi_request.h>
|
|
||||||
#include <scsi/scsi_cmnd.h>
|
|
||||||
static inline void cas_blk_rq_set_block_pc(struct request *rq)
|
|
||||||
{
|
|
||||||
struct scsi_cmnd *cmd = blk_mq_rq_to_pdu(rq);
|
|
||||||
|
|
||||||
struct scsi_request *req = &cmd->req;
|
|
||||||
|
|
||||||
memset(req->__cmd, 0, sizeof(req->__cmd));
|
|
||||||
req->cmd = req->__cmd;
|
|
||||||
req->cmd_len = BLK_MAX_CDB;
|
|
||||||
req->sense_len = 0;
|
|
||||||
}" ;;
|
|
||||||
*)
|
|
||||||
exit 1
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
conf_run $@
|
|
@ -1,56 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
# Copyright(c) 2012-2021 Intel Corporation
|
|
||||||
# SPDX-License-Identifier: BSD-3-Clause
|
|
||||||
#
|
|
||||||
|
|
||||||
. $(dirname $3)/conf_framework
|
|
||||||
|
|
||||||
check() {
|
|
||||||
cur_name=$(basename $2)
|
|
||||||
config_file_path=$1
|
|
||||||
if compile_module $cur_name "blk_make_request(NULL, NULL, 0)" "linux/blkdev.h"
|
|
||||||
then
|
|
||||||
echo $cur_name "1" >> $config_file_path
|
|
||||||
else
|
|
||||||
echo $cur_name "2" >> $config_file_path
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
apply() {
|
|
||||||
case "$1" in
|
|
||||||
"1")
|
|
||||||
add_function "
|
|
||||||
static inline struct request *cas_blk_make_request(struct request_queue *q,
|
|
||||||
struct bio *bio, gfp_t gfp_mask)
|
|
||||||
{
|
|
||||||
return blk_make_request(q, bio, gfp_mask);
|
|
||||||
}" ;;
|
|
||||||
"2")
|
|
||||||
add_function "
|
|
||||||
static inline struct request *cas_blk_make_request(struct request_queue *q,
|
|
||||||
struct bio *bio, gfp_t gfp_mask)
|
|
||||||
{
|
|
||||||
struct request *rq = blk_get_request(q, bio_data_dir(bio), gfp_mask);
|
|
||||||
if (IS_ERR(rq))
|
|
||||||
return rq;
|
|
||||||
cas_blk_rq_set_block_pc(rq);
|
|
||||||
rq->q = q;
|
|
||||||
for_each_bio(bio) {
|
|
||||||
struct bio *bounce_bio = bio;
|
|
||||||
int ret;
|
|
||||||
cas_blk_queue_bounce(q, &bounce_bio);
|
|
||||||
ret = cas_blk_rq_append_bio(rq, bounce_bio);
|
|
||||||
if (unlikely(ret)) {
|
|
||||||
blk_put_request(rq);
|
|
||||||
return ERR_PTR(ret);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return rq;
|
|
||||||
}" ;;
|
|
||||||
*)
|
|
||||||
exit 1
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
conf_run $@
|
|
@ -347,8 +347,12 @@ static int _casdsk_exp_obj_open(struct block_device *bdev, fmode_t mode)
|
|||||||
mutex_lock(&dsk->openers_lock);
|
mutex_lock(&dsk->openers_lock);
|
||||||
|
|
||||||
if (!dsk->claimed) {
|
if (!dsk->claimed) {
|
||||||
dsk->openers++;
|
if (unlikely(dsk->openers == UINT_MAX)) {
|
||||||
result = 0;
|
result = -EBUSY;
|
||||||
|
} else {
|
||||||
|
dsk->openers++;
|
||||||
|
result = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mutex_unlock(&dsk->openers_lock);
|
mutex_unlock(&dsk->openers_lock);
|
||||||
|
Loading…
Reference in New Issue
Block a user