static bool io_rw_reissue(struct io_kiocb *req)
{
#ifdef CONFIG_BLOCK
	umode_t mode = file_inode(req->file)->i_mode;

	if (!S_ISBLK(mode) && !S_ISREG(mode))
		return false;
	if ((req->flags & REQ_F_NOWAIT) || io_wq_current_is_worker())
		return false;
	/*
	 * If ref is dying, we might be running poll reap from the exit work.
	 * Don't attempt to reissue from that path, just let it fail with
	 * -EAGAIN.
	 */
	if (percpu_ref_is_dying(&req->ctx->refs))
		return false;

	lockdep_assert_held(&req->ctx->uring_lock);

	if (io_resubmit_prep(req)) {
		refcount_inc(&req->refs);
		io_queue_async_work(req);
		return true;
	}
	req_set_fail_links(req);
#endif
	return false;
}
static bool io_rw_reissue(struct io_kiocb *req)
{
#ifdef CONFIG_BLOCK
	umode_t mode = file_inode(req->file)->i_mode;

	if (!S_ISBLK(mode) && !S_ISREG(mode))
		return false;
	if ((req->flags & REQ_F_NOWAIT) || io_wq_current_is_worker())
		return false;
	 
	if (percpu_ref_is_dying(&req->ctx->refs))
		return false;

	lockdep_assert_held(&req->ctx->uring_lock);

	if (io_resubmit_prep(req)) {
		refcount_inc(&req->refs);
		io_queue_async_work(req);
		return true;
	}
	req_set_fail_links(req);
#endif
	return false;
}