Commit 953e117b authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull CLASS(fd) update from Al Viro:
 "A missing bit of commit 66635b07 ("assorted variants of irqfd
  setup: convert to CLASS(fd)") from a year ago.

  mshv_eventfd would've been covered by that, but it had forked slightly
  before that series and got merged into mainline later"

* tag 'pull-fd' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  mshv_eventfd: convert to CLASS(fd)
parents 815d3c16 ce23f29e
Loading
Loading
Loading
Loading
+3 −11
Original line number Diff line number Diff line
@@ -377,10 +377,11 @@ static int mshv_irqfd_assign(struct mshv_partition *pt,
	struct eventfd_ctx *eventfd = NULL, *resamplefd = NULL;
	struct mshv_irqfd *irqfd, *tmp;
	unsigned int events;
	struct fd f;
	int ret;
	int idx;

	CLASS(fd, f)(args->fd);

	irqfd = kzalloc(sizeof(*irqfd), GFP_KERNEL);
	if (!irqfd)
		return -ENOMEM;
@@ -390,8 +391,7 @@ static int mshv_irqfd_assign(struct mshv_partition *pt,
	INIT_WORK(&irqfd->irqfd_shutdown, mshv_irqfd_shutdown);
	seqcount_spinlock_init(&irqfd->irqfd_irqe_sc, &pt->pt_irqfds_lock);

	f = fdget(args->fd);
	if (!fd_file(f)) {
	if (fd_empty(f)) {
		ret = -EBADF;
		goto out;
	}
@@ -496,12 +496,6 @@ static int mshv_irqfd_assign(struct mshv_partition *pt,
		mshv_assert_irq_slow(irqfd);

	srcu_read_unlock(&pt->pt_irq_srcu, idx);
	/*
	 * do not drop the file until the irqfd is fully initialized, otherwise
	 * we might race against the POLLHUP
	 */
	fdput(f);

	return 0;

fail:
@@ -514,8 +508,6 @@ static int mshv_irqfd_assign(struct mshv_partition *pt,
	if (eventfd && !IS_ERR(eventfd))
		eventfd_ctx_put(eventfd);

	fdput(f);

out:
	kfree(irqfd);
	return ret;