mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-03 15:55:38 +00:00
io_uring: unify struct io_symlink and io_hardlink
They are really just a subset of each other, just use the one type. Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
9a3a11f977
commit
890968dc03
1 changed files with 7 additions and 20 deletions
|
@ -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;
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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);
|
||||
|
|
Loading…
Add table
Reference in a new issue