#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 <linux/xattr.h>
#include <uapi/linux/io_uring.h>
#include "../fs/internal.h"
#include "io_uring.h"
#include "xattr.h"
struct io_xattr { … };
void io_xattr_cleanup(struct io_kiocb *req)
{ … }
static void io_xattr_finish(struct io_kiocb *req, int ret)
{ … }
static int __io_getxattr_prep(struct io_kiocb *req,
const struct io_uring_sqe *sqe)
{ … }
int io_fgetxattr_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
{ … }
int io_getxattr_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
{ … }
int io_fgetxattr(struct io_kiocb *req, unsigned int issue_flags)
{ … }
int io_getxattr(struct io_kiocb *req, unsigned int issue_flags)
{ … }
static int __io_setxattr_prep(struct io_kiocb *req,
const struct io_uring_sqe *sqe)
{ … }
int io_setxattr_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
{ … }
int io_fsetxattr_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
{ … }
static int __io_setxattr(struct io_kiocb *req, unsigned int issue_flags,
const struct path *path)
{ … }
int io_fsetxattr(struct io_kiocb *req, unsigned int issue_flags)
{ … }
int io_setxattr(struct io_kiocb *req, unsigned int issue_flags)
{ … }