Re: [PATCH] io_uring: simplify io_remove_personalities()
On 02/01/2021 19:25, Pavel Begunkov wrote: > On 24/12/2020 03:02, Yejune Deng wrote: >> The function io_remove_personalities() is very similar to >> io_unregister_personality(),so implement io_remove_personalities() >> calling io_unregister_personality(). > > Please, don't forget to specify a version in the subject, e.g. > [PATCH v2], add a changelog after "---" and add tags from previous > threads if any. > > Looks good > Reviewed-by: Pavel Begunkov up > >> >> Signed-off-by: Yejune Deng >> --- >> fs/io_uring.c | 28 +++- >> 1 file changed, 11 insertions(+), 17 deletions(-) >> >> diff --git a/fs/io_uring.c b/fs/io_uring.c >> index b749578..dc913fa 100644 >> --- a/fs/io_uring.c >> +++ b/fs/io_uring.c >> @@ -8608,9 +8608,8 @@ static int io_uring_fasync(int fd, struct file *file, >> int on) >> return fasync_helper(fd, file, on, >cq_fasync); >> } >> >> -static int io_remove_personalities(int id, void *p, void *data) >> +static int io_unregister_personality(struct io_ring_ctx *ctx, unsigned id) >> { >> -struct io_ring_ctx *ctx = data; >> struct io_identity *iod; >> >> iod = idr_remove(>personality_idr, id); >> @@ -8618,7 +8617,17 @@ static int io_remove_personalities(int id, void *p, >> void *data) >> put_cred(iod->creds); >> if (refcount_dec_and_test(>count)) >> kfree(iod); >> +return 0; >> } >> + >> +return -EINVAL; >> +} >> + >> +static int io_remove_personalities(int id, void *p, void *data) >> +{ >> +struct io_ring_ctx *ctx = data; >> + >> +io_unregister_personality(ctx, id); >> return 0; >> } >> >> @@ -9679,21 +9688,6 @@ static int io_register_personality(struct io_ring_ctx >> *ctx) >> return ret; >> } >> >> -static int io_unregister_personality(struct io_ring_ctx *ctx, unsigned id) >> -{ >> -struct io_identity *iod; >> - >> -iod = idr_remove(>personality_idr, id); >> -if (iod) { >> -put_cred(iod->creds); >> -if (refcount_dec_and_test(>count)) >> -kfree(iod); >> -return 0; >> -} >> - >> -return -EINVAL; >> -} >> - >> static int io_register_restrictions(struct io_ring_ctx *ctx, void __user >> *arg, >> unsigned int nr_args) >> { >> > -- Pavel Begunkov
Re: [PATCH] io_uring: simplify io_remove_personalities()
On 12/23/20 8:02 PM, Yejune Deng wrote: > The function io_remove_personalities() is very similar to > io_unregister_personality(),so implement io_remove_personalities() > calling io_unregister_personality(). Better late than never, applied for 5.12. Thanks. -- Jens Axboe
Re: [PATCH] io_uring: simplify io_remove_personalities()
On 24/12/2020 03:02, Yejune Deng wrote: > The function io_remove_personalities() is very similar to > io_unregister_personality(),so implement io_remove_personalities() > calling io_unregister_personality(). Please, don't forget to specify a version in the subject, e.g. [PATCH v2], add a changelog after "---" and add tags from previous threads if any. Looks good Reviewed-by: Pavel Begunkov > > Signed-off-by: Yejune Deng > --- > fs/io_uring.c | 28 +++- > 1 file changed, 11 insertions(+), 17 deletions(-) > > diff --git a/fs/io_uring.c b/fs/io_uring.c > index b749578..dc913fa 100644 > --- a/fs/io_uring.c > +++ b/fs/io_uring.c > @@ -8608,9 +8608,8 @@ static int io_uring_fasync(int fd, struct file *file, > int on) > return fasync_helper(fd, file, on, >cq_fasync); > } > > -static int io_remove_personalities(int id, void *p, void *data) > +static int io_unregister_personality(struct io_ring_ctx *ctx, unsigned id) > { > - struct io_ring_ctx *ctx = data; > struct io_identity *iod; > > iod = idr_remove(>personality_idr, id); > @@ -8618,7 +8617,17 @@ static int io_remove_personalities(int id, void *p, > void *data) > put_cred(iod->creds); > if (refcount_dec_and_test(>count)) > kfree(iod); > + return 0; > } > + > + return -EINVAL; > +} > + > +static int io_remove_personalities(int id, void *p, void *data) > +{ > + struct io_ring_ctx *ctx = data; > + > + io_unregister_personality(ctx, id); > return 0; > } > > @@ -9679,21 +9688,6 @@ static int io_register_personality(struct io_ring_ctx > *ctx) > return ret; > } > > -static int io_unregister_personality(struct io_ring_ctx *ctx, unsigned id) > -{ > - struct io_identity *iod; > - > - iod = idr_remove(>personality_idr, id); > - if (iod) { > - put_cred(iod->creds); > - if (refcount_dec_and_test(>count)) > - kfree(iod); > - return 0; > - } > - > - return -EINVAL; > -} > - > static int io_register_restrictions(struct io_ring_ctx *ctx, void __user > *arg, > unsigned int nr_args) > { > -- Pavel Begunkov
[PATCH] io_uring: simplify io_remove_personalities()
The function io_remove_personalities() is very similar to io_unregister_personality(),so implement io_remove_personalities() calling io_unregister_personality(). Signed-off-by: Yejune Deng --- fs/io_uring.c | 28 +++- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/fs/io_uring.c b/fs/io_uring.c index b749578..dc913fa 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -8608,9 +8608,8 @@ static int io_uring_fasync(int fd, struct file *file, int on) return fasync_helper(fd, file, on, >cq_fasync); } -static int io_remove_personalities(int id, void *p, void *data) +static int io_unregister_personality(struct io_ring_ctx *ctx, unsigned id) { - struct io_ring_ctx *ctx = data; struct io_identity *iod; iod = idr_remove(>personality_idr, id); @@ -8618,7 +8617,17 @@ static int io_remove_personalities(int id, void *p, void *data) put_cred(iod->creds); if (refcount_dec_and_test(>count)) kfree(iod); + return 0; } + + return -EINVAL; +} + +static int io_remove_personalities(int id, void *p, void *data) +{ + struct io_ring_ctx *ctx = data; + + io_unregister_personality(ctx, id); return 0; } @@ -9679,21 +9688,6 @@ static int io_register_personality(struct io_ring_ctx *ctx) return ret; } -static int io_unregister_personality(struct io_ring_ctx *ctx, unsigned id) -{ - struct io_identity *iod; - - iod = idr_remove(>personality_idr, id); - if (iod) { - put_cred(iod->creds); - if (refcount_dec_and_test(>count)) - kfree(iod); - return 0; - } - - return -EINVAL; -} - static int io_register_restrictions(struct io_ring_ctx *ctx, void __user *arg, unsigned int nr_args) { -- 1.9.1