blobfs: Change channel type for synchronous operations

In the next step, this won't be a channel at all.

Change-Id: Ia8fe4da5b0b283e8dfc5c6477b84cfdd346d89a0
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/449464
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
This commit is contained in:
Ben Walker 2019-03-28 11:25:48 -07:00 committed by Jim Harris
parent 088c5e04ab
commit e9d400d5b9
6 changed files with 99 additions and 78 deletions

View File

@ -176,15 +176,6 @@ void spdk_fs_unload(struct spdk_filesystem *fs, spdk_fs_op_complete cb_fn, void
*/ */
struct spdk_io_channel *spdk_fs_alloc_io_channel(struct spdk_filesystem *fs); struct spdk_io_channel *spdk_fs_alloc_io_channel(struct spdk_filesystem *fs);
/**
* Allocate an I/O channel for synchronous operations.
*
* \param fs Blobstore filesystem to allocate I/O channel.
*
* \return a pointer to the I/O channel on success or NULL otherwise.
*/
struct spdk_io_channel *spdk_fs_alloc_io_channel_sync(struct spdk_filesystem *fs);
/** /**
* Free I/O channel. * Free I/O channel.
* *
@ -195,18 +186,34 @@ struct spdk_io_channel *spdk_fs_alloc_io_channel_sync(struct spdk_filesystem *fs
*/ */
void spdk_fs_free_io_channel(struct spdk_io_channel *channel); void spdk_fs_free_io_channel(struct spdk_io_channel *channel);
/**
* Allocate a context for synchronous operations.
*
* \param fs Blobstore filesystem for this context.
*
* \return a pointer to the context on success or NULL otherwise.
*/
struct spdk_fs_thread_ctx *spdk_fs_alloc_thread_ctx(struct spdk_filesystem *fs);
/**
* Free thread context.
*
* \param ctx Thread context to free.
*/
void spdk_fs_free_thread_ctx(struct spdk_fs_thread_ctx *ctx);
/** /**
* Get statistics about the file including the underlying blob id and the file size. * Get statistics about the file including the underlying blob id and the file size.
* *
* \param fs Blobstore filesystem. * \param fs Blobstore filesystem.
* \param channel The I/O channel used to allocate file request. * \param ctx The thread context for this operation
* \param name The file name used to look up the matched file in the blobstore filesystem. * \param name The file name used to look up the matched file in the blobstore filesystem.
* \param stat Caller allocated structure to store the obtained information about * \param stat Caller allocated structure to store the obtained information about
* this file. * this file.
* *
* \return 0 on success, negative errno on failure. * \return 0 on success, negative errno on failure.
*/ */
int spdk_fs_file_stat(struct spdk_filesystem *fs, struct spdk_io_channel *channel, int spdk_fs_file_stat(struct spdk_filesystem *fs, struct spdk_fs_thread_ctx *ctx,
const char *name, struct spdk_file_stat *stat); const char *name, struct spdk_file_stat *stat);
#define SPDK_BLOBFS_OPEN_CREATE (1ULL << 0) #define SPDK_BLOBFS_OPEN_CREATE (1ULL << 0)
@ -215,37 +222,37 @@ int spdk_fs_file_stat(struct spdk_filesystem *fs, struct spdk_io_channel *channe
* Create a new file on the given blobstore filesystem. * Create a new file on the given blobstore filesystem.
* *
* \param fs Blobstore filesystem. * \param fs Blobstore filesystem.
* \param channel The I/O channel used to allocate file request. * \param ctx The thread context for this operation
* \param name The file name for this new file. * \param name The file name for this new file.
* *
* \return 0 on success, negative errno on failure. * \return 0 on success, negative errno on failure.
*/ */
int spdk_fs_create_file(struct spdk_filesystem *fs, struct spdk_io_channel *channel, int spdk_fs_create_file(struct spdk_filesystem *fs, struct spdk_fs_thread_ctx *ctx,
const char *name); const char *name);
/** /**
* Open the file. * Open the file.
* *
* \param fs Blobstore filesystem. * \param fs Blobstore filesystem.
* \param channel The I/O channel used to allocate file request. * \param ctx The thread context for this operation
* \param name The file name used to look up the matched file in the blobstore filesystem. * \param name The file name used to look up the matched file in the blobstore filesystem.
* \param flags This flags will be used to control the open mode. * \param flags This flags will be used to control the open mode.
* \param file It will point to the open file if sccessful or NULL otherwirse. * \param file It will point to the open file if sccessful or NULL otherwirse.
* *
* \return 0 on success, negative errno on failure. * \return 0 on success, negative errno on failure.
*/ */
int spdk_fs_open_file(struct spdk_filesystem *fs, struct spdk_io_channel *channel, int spdk_fs_open_file(struct spdk_filesystem *fs, struct spdk_fs_thread_ctx *ctx,
const char *name, uint32_t flags, struct spdk_file **file); const char *name, uint32_t flags, struct spdk_file **file);
/** /**
* Close the file. * Close the file.
* *
* \param file File to close. * \param file File to close.
* \param channel The I/O channel used to allocate file request. * \param ctx The thread context for this operation
* *
* \return 0 on success, negative errno on failure. * \return 0 on success, negative errno on failure.
*/ */
int spdk_file_close(struct spdk_file *file, struct spdk_io_channel *channel); int spdk_file_close(struct spdk_file *file, struct spdk_fs_thread_ctx *ctx);
/** /**
* Change the file name. * Change the file name.
@ -254,25 +261,25 @@ int spdk_file_close(struct spdk_file *file, struct spdk_io_channel *channel);
* same name. * same name.
* *
* \param fs Blobstore filesystem. * \param fs Blobstore filesystem.
* \param channel The I/O channel used to allocate file request. * \param ctx The thread context for this operation
* \param old_name Old name of the file. * \param old_name Old name of the file.
* \param new_name New name of the file. * \param new_name New name of the file.
* *
* \return 0 on success, negative errno on failure. * \return 0 on success, negative errno on failure.
*/ */
int spdk_fs_rename_file(struct spdk_filesystem *fs, struct spdk_io_channel *channel, int spdk_fs_rename_file(struct spdk_filesystem *fs, struct spdk_fs_thread_ctx *ctx,
const char *old_name, const char *new_name); const char *old_name, const char *new_name);
/** /**
* Delete the file. * Delete the file.
* *
* \param fs Blobstore filesystem. * \param fs Blobstore filesystem.
* \param channel The I/O channel used to allocate file request. * \param ctx The thread context for this operation
* \param name The name of the file to be deleted. * \param name The name of the file to be deleted.
* *
* \return 0 on success, negative errno on failure. * \return 0 on success, negative errno on failure.
*/ */
int spdk_fs_delete_file(struct spdk_filesystem *fs, struct spdk_io_channel *channel, int spdk_fs_delete_file(struct spdk_filesystem *fs, struct spdk_fs_thread_ctx *ctx,
const char *name); const char *name);
/** /**
@ -299,12 +306,12 @@ spdk_fs_iter spdk_fs_iter_next(spdk_fs_iter iter);
* Truncate the file. * Truncate the file.
* *
* \param file File to truncate. * \param file File to truncate.
* \param channel The I/O channel used to allocate file request. * \param ctx The thread context for this operation
* \param length New size in bytes of the file. * \param length New size in bytes of the file.
* *
* \return 0 on success, negative errno on failure. * \return 0 on success, negative errno on failure.
*/ */
int spdk_file_truncate(struct spdk_file *file, struct spdk_io_channel *channel, int spdk_file_truncate(struct spdk_file *file, struct spdk_fs_thread_ctx *ctx,
uint64_t length); uint64_t length);
/** /**
@ -329,28 +336,28 @@ uint64_t spdk_file_get_length(struct spdk_file *file);
* Write data to the given file. * Write data to the given file.
* *
* \param file File to write. * \param file File to write.
* \param channel The I/O channel used to allocate file request. * \param ctx The thread context for this operation
* \param payload The specified buffer which should contain the data to be transmitted. * \param payload The specified buffer which should contain the data to be transmitted.
* \param offset The beginning position to write data. * \param offset The beginning position to write data.
* \param length The size in bytes of data to write. * \param length The size in bytes of data to write.
* *
* \return 0 on success, negative errno on failure. * \return 0 on success, negative errno on failure.
*/ */
int spdk_file_write(struct spdk_file *file, struct spdk_io_channel *channel, int spdk_file_write(struct spdk_file *file, struct spdk_fs_thread_ctx *ctx,
void *payload, uint64_t offset, uint64_t length); void *payload, uint64_t offset, uint64_t length);
/** /**
* Read data to user buffer from the given file. * Read data to user buffer from the given file.
* *
* \param file File to read. * \param file File to read.
* \param channel The I/O channel used to allocate file request. * \param ctx The thread context for this operation
* \param payload The specified buffer which will store the obtained data. * \param payload The specified buffer which will store the obtained data.
* \param offset The beginning position to read. * \param offset The beginning position to read.
* \param length The size in bytes of data to read. * \param length The size in bytes of data to read.
* *
* \return the end position of this read operation on success, negated errno on failure. * \return the end position of this read operation on success, negated errno on failure.
*/ */
int64_t spdk_file_read(struct spdk_file *file, struct spdk_io_channel *channel, int64_t spdk_file_read(struct spdk_file *file, struct spdk_fs_thread_ctx *ctx,
void *payload, uint64_t offset, uint64_t length); void *payload, uint64_t offset, uint64_t length);
/** /**
@ -382,11 +389,11 @@ void spdk_file_set_priority(struct spdk_file *file, uint32_t priority);
* Synchronize the data from the cache to the disk. * Synchronize the data from the cache to the disk.
* *
* \param file File to sync. * \param file File to sync.
* \param channel The I/O channel used to allocate file request. * \param ctx The thread context for this operation
* *
* \return 0 on success. * \return 0 on success.
*/ */
int spdk_file_sync(struct spdk_file *file, struct spdk_io_channel *channel); int spdk_file_sync(struct spdk_file *file, struct spdk_fs_thread_ctx *ctx);
/** /**
* Get the unique ID for the file. * Get the unique ID for the file.

View File

@ -254,6 +254,12 @@ struct spdk_fs_channel {
pthread_spinlock_t lock; pthread_spinlock_t lock;
}; };
/* For now, this is effectively an alias. But eventually we'll shift
* some data members over. */
struct spdk_fs_thread_ctx {
struct spdk_fs_channel ch;
};
static struct spdk_fs_request * static struct spdk_fs_request *
alloc_fs_request(struct spdk_fs_channel *channel) alloc_fs_request(struct spdk_fs_channel *channel)
{ {
@ -849,10 +855,10 @@ __file_stat(void *arg)
} }
int int
spdk_fs_file_stat(struct spdk_filesystem *fs, struct spdk_io_channel *_channel, spdk_fs_file_stat(struct spdk_filesystem *fs, struct spdk_fs_thread_ctx *ctx,
const char *name, struct spdk_file_stat *stat) const char *name, struct spdk_file_stat *stat)
{ {
struct spdk_fs_channel *channel = spdk_io_channel_get_ctx(_channel); struct spdk_fs_channel *channel = (struct spdk_fs_channel *)ctx;
struct spdk_fs_request *req; struct spdk_fs_request *req;
int rc; int rc;
@ -1003,9 +1009,9 @@ __fs_create_file(void *arg)
} }
int int
spdk_fs_create_file(struct spdk_filesystem *fs, struct spdk_io_channel *_channel, const char *name) spdk_fs_create_file(struct spdk_filesystem *fs, struct spdk_fs_thread_ctx *ctx, const char *name)
{ {
struct spdk_fs_channel *channel = spdk_io_channel_get_ctx(_channel); struct spdk_fs_channel *channel = (struct spdk_fs_channel *)ctx;
struct spdk_fs_request *req; struct spdk_fs_request *req;
struct spdk_fs_cb_args *args; struct spdk_fs_cb_args *args;
int rc; int rc;
@ -1148,10 +1154,10 @@ __fs_open_file(void *arg)
} }
int int
spdk_fs_open_file(struct spdk_filesystem *fs, struct spdk_io_channel *_channel, spdk_fs_open_file(struct spdk_filesystem *fs, struct spdk_fs_thread_ctx *ctx,
const char *name, uint32_t flags, struct spdk_file **file) const char *name, uint32_t flags, struct spdk_file **file)
{ {
struct spdk_fs_channel *channel = spdk_io_channel_get_ctx(_channel); struct spdk_fs_channel *channel = (struct spdk_fs_channel *)ctx;
struct spdk_fs_request *req; struct spdk_fs_request *req;
struct spdk_fs_cb_args *args; struct spdk_fs_cb_args *args;
int rc; int rc;
@ -1288,10 +1294,10 @@ __fs_rename_file(void *arg)
} }
int int
spdk_fs_rename_file(struct spdk_filesystem *fs, struct spdk_io_channel *_channel, spdk_fs_rename_file(struct spdk_filesystem *fs, struct spdk_fs_thread_ctx *ctx,
const char *old_name, const char *new_name) const char *old_name, const char *new_name)
{ {
struct spdk_fs_channel *channel = spdk_io_channel_get_ctx(_channel); struct spdk_fs_channel *channel = (struct spdk_fs_channel *)ctx;
struct spdk_fs_request *req; struct spdk_fs_request *req;
struct spdk_fs_cb_args *args; struct spdk_fs_cb_args *args;
int rc; int rc;
@ -1396,10 +1402,10 @@ __fs_delete_file(void *arg)
} }
int int
spdk_fs_delete_file(struct spdk_filesystem *fs, struct spdk_io_channel *_channel, spdk_fs_delete_file(struct spdk_filesystem *fs, struct spdk_fs_thread_ctx *ctx,
const char *name) const char *name)
{ {
struct spdk_fs_channel *channel = spdk_io_channel_get_ctx(_channel); struct spdk_fs_channel *channel = (struct spdk_fs_channel *)ctx;
struct spdk_fs_request *req; struct spdk_fs_request *req;
struct spdk_fs_cb_args *args; struct spdk_fs_cb_args *args;
int rc; int rc;
@ -1545,10 +1551,10 @@ __truncate(void *arg)
} }
int int
spdk_file_truncate(struct spdk_file *file, struct spdk_io_channel *_channel, spdk_file_truncate(struct spdk_file *file, struct spdk_fs_thread_ctx *ctx,
uint64_t length) uint64_t length)
{ {
struct spdk_fs_channel *channel = spdk_io_channel_get_ctx(_channel); struct spdk_fs_channel *channel = (struct spdk_fs_channel *)ctx;
struct spdk_fs_request *req; struct spdk_fs_request *req;
struct spdk_fs_cb_args *args; struct spdk_fs_cb_args *args;
int rc; int rc;
@ -1723,8 +1729,14 @@ spdk_fs_alloc_io_channel(struct spdk_filesystem *fs)
return io_channel; return io_channel;
} }
struct spdk_io_channel * void
spdk_fs_alloc_io_channel_sync(struct spdk_filesystem *fs) spdk_fs_free_io_channel(struct spdk_io_channel *channel)
{
spdk_put_io_channel(channel);
}
struct spdk_fs_thread_ctx *
spdk_fs_alloc_thread_ctx(struct spdk_filesystem *fs)
{ {
struct spdk_io_channel *io_channel; struct spdk_io_channel *io_channel;
struct spdk_fs_channel *fs_channel; struct spdk_fs_channel *fs_channel;
@ -1735,13 +1747,15 @@ spdk_fs_alloc_io_channel_sync(struct spdk_filesystem *fs)
fs_channel->sync = 1; fs_channel->sync = 1;
pthread_spin_init(&fs_channel->lock, 0); pthread_spin_init(&fs_channel->lock, 0);
return io_channel; /* These two types are currently equivalent */
return (struct spdk_fs_thread_ctx *)fs_channel;
} }
void void
spdk_fs_free_io_channel(struct spdk_io_channel *channel) spdk_fs_free_thread_ctx(struct spdk_fs_thread_ctx *ctx)
{ {
spdk_put_io_channel(channel); spdk_put_io_channel(spdk_io_channel_from_ctx(ctx));
} }
void void
@ -2120,10 +2134,10 @@ __send_rw_from_file(struct spdk_file *file, sem_t *sem, void *payload,
} }
int int
spdk_file_write(struct spdk_file *file, struct spdk_io_channel *_channel, spdk_file_write(struct spdk_file *file, struct spdk_fs_thread_ctx *ctx,
void *payload, uint64_t offset, uint64_t length) void *payload, uint64_t offset, uint64_t length)
{ {
struct spdk_fs_channel *channel = spdk_io_channel_get_ctx(_channel); struct spdk_fs_channel *channel = (struct spdk_fs_channel *)ctx;
struct spdk_fs_cb_args *args; struct spdk_fs_cb_args *args;
uint64_t rem_length, copy, blob_size, cluster_sz; uint64_t rem_length, copy, blob_size, cluster_sz;
uint32_t cache_buffers_filled = 0; uint32_t cache_buffers_filled = 0;
@ -2334,10 +2348,10 @@ __file_read(struct spdk_file *file, void *payload, uint64_t offset, uint64_t len
} }
int64_t int64_t
spdk_file_read(struct spdk_file *file, struct spdk_io_channel *_channel, spdk_file_read(struct spdk_file *file, struct spdk_fs_thread_ctx *ctx,
void *payload, uint64_t offset, uint64_t length) void *payload, uint64_t offset, uint64_t length)
{ {
struct spdk_fs_channel *channel = spdk_io_channel_get_ctx(_channel); struct spdk_fs_channel *channel = (struct spdk_fs_channel *)ctx;
uint64_t final_offset, final_length; uint64_t final_offset, final_length;
uint32_t sub_reads = 0; uint32_t sub_reads = 0;
int rc = 0; int rc = 0;
@ -2443,9 +2457,9 @@ _file_sync(struct spdk_file *file, struct spdk_fs_channel *channel,
} }
int int
spdk_file_sync(struct spdk_file *file, struct spdk_io_channel *_channel) spdk_file_sync(struct spdk_file *file, struct spdk_fs_thread_ctx *ctx)
{ {
struct spdk_fs_channel *channel = spdk_io_channel_get_ctx(_channel); struct spdk_fs_channel *channel = (struct spdk_fs_channel *)ctx;
struct spdk_fs_cb_args args = {}; struct spdk_fs_cb_args args = {};
args.sem = &channel->sem; args.sem = &channel->sem;
@ -2559,9 +2573,9 @@ __file_close(void *arg)
} }
int int
spdk_file_close(struct spdk_file *file, struct spdk_io_channel *_channel) spdk_file_close(struct spdk_file *file, struct spdk_fs_thread_ctx *ctx)
{ {
struct spdk_fs_channel *channel = spdk_io_channel_get_ctx(_channel); struct spdk_fs_channel *channel = (struct spdk_fs_channel *)ctx;
struct spdk_fs_request *req; struct spdk_fs_request *req;
struct spdk_fs_cb_args *args; struct spdk_fs_cb_args *args;
@ -2572,7 +2586,7 @@ spdk_file_close(struct spdk_file *file, struct spdk_io_channel *_channel)
args = &req->args; args = &req->args;
spdk_file_sync(file, _channel); spdk_file_sync(file, ctx);
BLOBFS_TRACE(file, "name=%s\n", file->name); BLOBFS_TRACE(file, "name=%s\n", file->name);
args->file = file; args->file = file;
args->sem = &channel->sem; args->sem = &channel->sem;

View File

@ -59,7 +59,7 @@ std::string g_bdev_name;
volatile bool g_spdk_ready = false; volatile bool g_spdk_ready = false;
volatile bool g_spdk_start_failure = false; volatile bool g_spdk_start_failure = false;
struct sync_args { struct sync_args {
struct spdk_io_channel *channel; struct spdk_fs_thread_ctx *channel;
}; };
__thread struct sync_args g_sync_args; __thread struct sync_args g_sync_args;
@ -586,7 +586,7 @@ void SpdkInitializeThread(void)
if (g_fs != NULL) { if (g_fs != NULL) {
thread = spdk_thread_create("spdk_rocksdb"); thread = spdk_thread_create("spdk_rocksdb");
spdk_set_thread(thread); spdk_set_thread(thread);
g_sync_args.channel = spdk_fs_alloc_io_channel_sync(g_fs); g_sync_args.channel = spdk_fs_alloc_thread_ctx(g_fs);
} }
} }

View File

@ -51,7 +51,7 @@ pthread_t g_fuse_thread;
struct spdk_bs_dev *g_bs_dev; struct spdk_bs_dev *g_bs_dev;
struct spdk_filesystem *g_fs; struct spdk_filesystem *g_fs;
struct spdk_io_channel *g_channel; struct spdk_fs_thread_ctx *g_channel;
struct spdk_file *g_file; struct spdk_file *g_file;
int g_fserrno; int g_fserrno;
int g_fuse_argc = 0; int g_fuse_argc = 0;
@ -292,7 +292,7 @@ init_cb(void *ctx, struct spdk_filesystem *fs, int fserrno)
struct spdk_event *event; struct spdk_event *event;
g_fs = fs; g_fs = fs;
g_channel = spdk_fs_alloc_io_channel_sync(g_fs); g_channel = spdk_fs_alloc_thread_ctx(g_fs);
event = spdk_event_allocate(1, start_fuse_fn, NULL, NULL); event = spdk_event_allocate(1, start_fuse_fn, NULL, NULL);
spdk_event_call(event); spdk_event_call(event);
} }
@ -309,7 +309,7 @@ shutdown_cb(void *ctx, int fserrno)
{ {
fuse_session_exit(fuse_get_session(g_fuse)); fuse_session_exit(fuse_get_session(g_fuse));
pthread_kill(g_fuse_thread, SIGINT); pthread_kill(g_fuse_thread, SIGINT);
spdk_fs_free_io_channel(g_channel); spdk_fs_free_thread_ctx(g_channel);
spdk_app_stop(0); spdk_app_stop(0);
} }

View File

@ -485,7 +485,7 @@ channel_ops_sync(void)
{ {
struct spdk_filesystem *fs; struct spdk_filesystem *fs;
struct spdk_bs_dev *dev; struct spdk_bs_dev *dev;
struct spdk_io_channel *channel; struct spdk_fs_thread_ctx *channel;
dev = init_dev(); dev = init_dev();
@ -496,10 +496,10 @@ channel_ops_sync(void)
fs = g_fs; fs = g_fs;
SPDK_CU_ASSERT_FATAL(fs->bs->dev == dev); SPDK_CU_ASSERT_FATAL(fs->bs->dev == dev);
channel = spdk_fs_alloc_io_channel_sync(fs); channel = spdk_fs_alloc_thread_ctx(fs);
CU_ASSERT(channel != NULL); CU_ASSERT(channel != NULL);
spdk_fs_free_io_channel(channel); spdk_fs_free_thread_ctx(channel);
g_fserrno = 1; g_fserrno = 1;
spdk_fs_unload(fs, fs_op_complete, NULL); spdk_fs_unload(fs, fs_op_complete, NULL);

View File

@ -151,11 +151,11 @@ cache_write(void)
uint64_t length; uint64_t length;
int rc; int rc;
char buf[100]; char buf[100];
struct spdk_io_channel *channel; struct spdk_fs_thread_ctx *channel;
ut_send_request(_fs_init, NULL); ut_send_request(_fs_init, NULL);
channel = spdk_fs_alloc_io_channel_sync(g_fs); channel = spdk_fs_alloc_thread_ctx(g_fs);
rc = spdk_fs_open_file(g_fs, channel, "testfile", SPDK_BLOBFS_OPEN_CREATE, &g_file); rc = spdk_fs_open_file(g_fs, channel, "testfile", SPDK_BLOBFS_OPEN_CREATE, &g_file);
CU_ASSERT(rc == 0); CU_ASSERT(rc == 0);
@ -179,7 +179,7 @@ cache_write(void)
rc = spdk_fs_delete_file(g_fs, channel, "testfile"); rc = spdk_fs_delete_file(g_fs, channel, "testfile");
CU_ASSERT(rc == -ENOENT); CU_ASSERT(rc == -ENOENT);
spdk_fs_free_io_channel(channel); spdk_fs_free_thread_ctx(channel);
ut_send_request(_fs_unload, NULL); ut_send_request(_fs_unload, NULL);
} }
@ -189,12 +189,12 @@ cache_write_null_buffer(void)
{ {
uint64_t length; uint64_t length;
int rc; int rc;
struct spdk_io_channel *channel; struct spdk_fs_thread_ctx *channel;
struct spdk_thread *thread; struct spdk_thread *thread;
ut_send_request(_fs_init, NULL); ut_send_request(_fs_init, NULL);
channel = spdk_fs_alloc_io_channel_sync(g_fs); channel = spdk_fs_alloc_thread_ctx(g_fs);
rc = spdk_fs_open_file(g_fs, channel, "testfile", SPDK_BLOBFS_OPEN_CREATE, &g_file); rc = spdk_fs_open_file(g_fs, channel, "testfile", SPDK_BLOBFS_OPEN_CREATE, &g_file);
CU_ASSERT(rc == 0); CU_ASSERT(rc == 0);
@ -211,7 +211,7 @@ cache_write_null_buffer(void)
rc = spdk_fs_delete_file(g_fs, channel, "testfile"); rc = spdk_fs_delete_file(g_fs, channel, "testfile");
CU_ASSERT(rc == 0); CU_ASSERT(rc == 0);
spdk_fs_free_io_channel(channel); spdk_fs_free_thread_ctx(channel);
thread = spdk_get_thread(); thread = spdk_get_thread();
while (spdk_thread_poll(thread, 0, 0) > 0) {} while (spdk_thread_poll(thread, 0, 0) > 0) {}
@ -223,12 +223,12 @@ static void
fs_create_sync(void) fs_create_sync(void)
{ {
int rc; int rc;
struct spdk_io_channel *channel; struct spdk_fs_thread_ctx *channel;
struct spdk_thread *thread; struct spdk_thread *thread;
ut_send_request(_fs_init, NULL); ut_send_request(_fs_init, NULL);
channel = spdk_fs_alloc_io_channel_sync(g_fs); channel = spdk_fs_alloc_thread_ctx(g_fs);
CU_ASSERT(channel != NULL); CU_ASSERT(channel != NULL);
rc = spdk_fs_create_file(g_fs, channel, "testfile"); rc = spdk_fs_create_file(g_fs, channel, "testfile");
@ -241,7 +241,7 @@ fs_create_sync(void)
rc = spdk_fs_delete_file(g_fs, channel, "testfile"); rc = spdk_fs_delete_file(g_fs, channel, "testfile");
CU_ASSERT(rc == 0); CU_ASSERT(rc == 0);
spdk_fs_free_io_channel(channel); spdk_fs_free_thread_ctx(channel);
thread = spdk_get_thread(); thread = spdk_get_thread();
while (spdk_thread_poll(thread, 0, 0) > 0) {} while (spdk_thread_poll(thread, 0, 0) > 0) {}
@ -254,12 +254,12 @@ cache_append_no_cache(void)
{ {
int rc; int rc;
char buf[100]; char buf[100];
struct spdk_io_channel *channel; struct spdk_fs_thread_ctx *channel;
struct spdk_thread *thread; struct spdk_thread *thread;
ut_send_request(_fs_init, NULL); ut_send_request(_fs_init, NULL);
channel = spdk_fs_alloc_io_channel_sync(g_fs); channel = spdk_fs_alloc_thread_ctx(g_fs);
rc = spdk_fs_open_file(g_fs, channel, "testfile", SPDK_BLOBFS_OPEN_CREATE, &g_file); rc = spdk_fs_open_file(g_fs, channel, "testfile", SPDK_BLOBFS_OPEN_CREATE, &g_file);
CU_ASSERT(rc == 0); CU_ASSERT(rc == 0);
@ -282,7 +282,7 @@ cache_append_no_cache(void)
rc = spdk_fs_delete_file(g_fs, channel, "testfile"); rc = spdk_fs_delete_file(g_fs, channel, "testfile");
CU_ASSERT(rc == 0); CU_ASSERT(rc == 0);
spdk_fs_free_io_channel(channel); spdk_fs_free_thread_ctx(channel);
thread = spdk_get_thread(); thread = spdk_get_thread();
while (spdk_thread_poll(thread, 0, 0) > 0) {} while (spdk_thread_poll(thread, 0, 0) > 0) {}
@ -294,12 +294,12 @@ static void
fs_delete_file_without_close(void) fs_delete_file_without_close(void)
{ {
int rc; int rc;
struct spdk_io_channel *channel; struct spdk_fs_thread_ctx *channel;
struct spdk_file *file; struct spdk_file *file;
struct spdk_thread *thread; struct spdk_thread *thread;
ut_send_request(_fs_init, NULL); ut_send_request(_fs_init, NULL);
channel = spdk_fs_alloc_io_channel_sync(g_fs); channel = spdk_fs_alloc_thread_ctx(g_fs);
CU_ASSERT(channel != NULL); CU_ASSERT(channel != NULL);
rc = spdk_fs_open_file(g_fs, channel, "testfile", SPDK_BLOBFS_OPEN_CREATE, &g_file); rc = spdk_fs_open_file(g_fs, channel, "testfile", SPDK_BLOBFS_OPEN_CREATE, &g_file);
@ -319,7 +319,7 @@ fs_delete_file_without_close(void)
rc = spdk_fs_open_file(g_fs, channel, "testfile", 0, &file); rc = spdk_fs_open_file(g_fs, channel, "testfile", 0, &file);
CU_ASSERT(rc != 0); CU_ASSERT(rc != 0);
spdk_fs_free_io_channel(channel); spdk_fs_free_thread_ctx(channel);
thread = spdk_get_thread(); thread = spdk_get_thread();
while (spdk_thread_poll(thread, 0, 0) > 0) {} while (spdk_thread_poll(thread, 0, 0) > 0) {}