#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/fs.h>
#include <linux/file.h>
#include <linux/mm.h>
#include <linux/slab.h>
#include <linux/namei.h>
#include <linux/io_uring.h>
#include <uapi/linux/io_uring.h>
#include "../fs/internal.h"
#include "io_uring.h"
#include "fs.h"
struct io_rename { … };
struct io_unlink { … };
struct io_mkdir { … };
struct io_link { … };
int io_renameat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
{ … }
int io_renameat(struct io_kiocb *req, unsigned int issue_flags)
{ … }
void io_renameat_cleanup(struct io_kiocb *req)
{ … }
int io_unlinkat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
{ … }
int io_unlinkat(struct io_kiocb *req, unsigned int issue_flags)
{ … }
void io_unlinkat_cleanup(struct io_kiocb *req)
{ … }
int io_mkdirat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
{ … }
int io_mkdirat(struct io_kiocb *req, unsigned int issue_flags)
{ … }
void io_mkdirat_cleanup(struct io_kiocb *req)
{ … }
int io_symlinkat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
{ … }
int io_symlinkat(struct io_kiocb *req, unsigned int issue_flags)
{ … }
int io_linkat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
{ … }
int io_linkat(struct io_kiocb *req, unsigned int issue_flags)
{ … }
void io_link_cleanup(struct io_kiocb *req)
{ … }