Skip to content

Commit

Permalink
io_uring: unify struct io_symlink and io_hardlink
Browse files Browse the repository at this point in the history
They are really just a subset of each other, just use the one type.

Signed-off-by: Jens Axboe <[email protected]>
  • Loading branch information
axboe committed Jul 25, 2022
1 parent 9a3a11f commit 890968d
Showing 1 changed file with 7 additions and 20 deletions.
27 changes: 7 additions & 20 deletions io_uring/io_uring.c
Original file line number Diff line number Diff line change
Expand Up @@ -761,14 +761,7 @@ struct io_mkdir {
struct filename *filename;
};

struct io_symlink {
struct file *file;
int new_dfd;
struct filename *oldpath;
struct filename *newpath;
};

struct io_hardlink {
struct io_link {
struct file *file;
int old_dfd;
int new_dfd;
Expand Down Expand Up @@ -4723,7 +4716,7 @@ static int io_mkdirat(struct io_kiocb *req, unsigned int issue_flags)
static int io_symlinkat_prep(struct io_kiocb *req,
const struct io_uring_sqe *sqe)
{
struct io_symlink *sl = io_kiocb_to_cmd(req);
struct io_link *sl = io_kiocb_to_cmd(req);
const char __user *oldpath, *newpath;

if (sqe->len || sqe->rw_flags || sqe->buf_index || sqe->splice_fd_in)
Expand Down Expand Up @@ -4751,7 +4744,7 @@ static int io_symlinkat_prep(struct io_kiocb *req,

static int io_symlinkat(struct io_kiocb *req, unsigned int issue_flags)
{
struct io_symlink *sl = io_kiocb_to_cmd(req);
struct io_link *sl = io_kiocb_to_cmd(req);
int ret;

if (issue_flags & IO_URING_F_NONBLOCK)
Expand All @@ -4767,7 +4760,7 @@ static int io_symlinkat(struct io_kiocb *req, unsigned int issue_flags)
static int io_linkat_prep(struct io_kiocb *req,
const struct io_uring_sqe *sqe)
{
struct io_hardlink *lnk = io_kiocb_to_cmd(req);
struct io_link *lnk = io_kiocb_to_cmd(req);
const char __user *oldf, *newf;

if (sqe->rw_flags || sqe->buf_index || sqe->splice_fd_in)
Expand Down Expand Up @@ -4797,7 +4790,7 @@ static int io_linkat_prep(struct io_kiocb *req,

static int io_linkat(struct io_kiocb *req, unsigned int issue_flags)
{
struct io_hardlink *lnk = io_kiocb_to_cmd(req);
struct io_link *lnk = io_kiocb_to_cmd(req);
int ret;

if (issue_flags & IO_URING_F_NONBLOCK)
Expand Down Expand Up @@ -8011,15 +8004,9 @@ static void io_clean_op(struct io_kiocb *req)
putname(md->filename);
break;
}
case IORING_OP_SYMLINKAT: {
struct io_symlink *sl = io_kiocb_to_cmd(req);

putname(sl->oldpath);
putname(sl->newpath);
break;
}
case IORING_OP_SYMLINKAT:
case IORING_OP_LINKAT: {
struct io_hardlink *hl = io_kiocb_to_cmd(req);
struct io_link *hl = io_kiocb_to_cmd(req);

putname(hl->oldpath);
putname(hl->newpath);
Expand Down

0 comments on commit 890968d

Please sign in to comment.