Re: [PATCH 4.19 03/89] cgroup, netclassid: periodically release file_lock on classid updating

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi!

> From: Dmitry Yakunin <zeil@xxxxxxxxxxxxxx>
> 
> [ Upstream commit 018d26fcd12a75fb9b5fe233762aa3f2f0854b88 ]
...
> Now update is non atomic and socket may be skipped using calls:
> 
> dup2(oldfd, newfd);
> close(oldfd);
> 
> But this case is not typical. Moreover before this patch skip is possible
> too by hiding socket fd in unix socket buffer.

Dunno. This makes interface even more interesting.

> +
>  static int update_classid_sock(const void *v, struct file *file, unsigned n)
>  {
>  	int err;
> +	struct update_classid_context *ctx = (void *)v;
>  	struct socket *sock = sock_from_file(file, &err);
>
...
> +	if (--ctx->batch == 0) {
> +		ctx->batch = UPDATE_CLASSID_BATCH;
> +		return n + 1;
> +	}
>  	return 0;
>  }

We take "const void *" and then write to it. That's asking for
trouble... right? Should the const annotation be removed, at least for
sake of humans trying to understand the code?

Best regards,
									Pavel

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux