#ifndef STR_H #define STR_H #include #include "built_in.h" extern size_t strlcpy(char *dest, const char *src, size_t size); extern int slprintf(char *dst, size_t size, const char *fmt, ...) __check_format_printf(3, 4); extern int slprintf_nocheck(char *dst, size_t size, const char *fmt, ...); extern char *strtrim_right(char *p, char c); extern noinline void *xmemset(void *s, int c, size_t n); extern char *argv2str(int startind, int argc, char **argv); extern char **argv_insert(char **argv, size_t *count, const char *str); extern void argv_free(char **argv); extern int str2mac(const char *str, uint8_t *mac, size_t len); extern char *str2fqdn(const char *str); #endif /* STR_H */ >cgit logo index : net-next.git
net-next plumbingsTobias Klauser
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Axboe <axboe@fb.com>2016-10-27 09:49:19 -0600
committerJens Axboe <axboe@fb.com>2016-10-27 09:56:03 -0600
commit7fe311302f7d52601cd799ad508a6f92cb3d748d (patch)
tree9ee240140ac26203b706e4b8e277dcea147f5d51
parent94d7dea448fae6cbb83395323c1d2fd7f19dc388 (diff)
blk-mq: update hardware and software queues for sleeping alloc
If we end up sleeping due to running out of requests, we should update the hardware and software queues in the map ctx structure. Otherwise we could end up having rq->mq_ctx point to the pre-sleep context, and risk corrupting ctx->rq_list since we'll be grabbing the wrong lock when inserting the request. Reported-by: Dave Jones <davej@codemonkey.org.uk> Reported-by: Chris Mason <clm@fb.com> Tested-by: Chris Mason <clm@fb.com> Fixes: 63581af3f31e ("blk-mq: remove non-blocking pass in blk_mq_map_request") Signed-off-by: Jens Axboe <axboe@fb.com>