Since my commit 4614a696bd1c3a9af3a08f0e5874830a85b889d4, thecurrent->comm value could be changed by other threads.

This changed the comm locking rules, which previously allowed forunlocked current->comm access, since only the thread itself couldchange its comm.

While this was brought up at the time, it was not consideredproblematic, as the comm writing was done in such a way thatonly null or incomplete comms could be read. However, recentlyfolks have made it clear they want to see this issue resolved.

So fair enough, as I opened this can of worms, I should workto resolve it and this patchset is my initial attempt.

The proposed solution here is to introduce a new seqlock thatexclusively protects the comm value. We use it to serializeaccess via get_task_comm() and set_task_comm(). Since some comm access is open-coded using the task lock, we preservethe task locking in set_task_comm for now. Once all comm access is converted to using get_task_comm, we can clean thatup as well.

In addition, with this new patch set I've introduced a printk%ptc accessor, which makes the conversion to locked accesssimpler (as most uses are for printks).

Hopefully this will allow for a smooth transition, where we canslowly fix up the unlocked current->comm access bit by bit,reducing the race window with each patch, while not making thesituation any worse then it was yesterday.

Also in this patch set I have a an example how I've converted comm access in ext4 to use %ptc method. I've got quite a numberof similar patches queued, but wanted to get some feedback onthe approach before I start patchbombing everyone.