[systemd-devel] [patch] cgroup fs: avoid switching ->d_op on live dentry

Nick Piggin npiggin at gmail.com
Tue Dec 21 19:11:51 PST 2010


On Wed, Dec 22, 2010 at 5:25 AM, Al Viro <viro at zeniv.linux.org.uk> wrote:
> On Tue, Dec 21, 2010 at 07:55:38PM +1100, Nick Piggin wrote:
>> On Tue, Dec 21, 2010 at 09:44:40AM +0100, Sedat Dilek wrote:
>> > Against linux-next (next-20101210) it should look like:
>>
>> Yep, I'll rebase my tree with the fix shortly.
>>
>> >
>> > $ diff -Naur cgroup-fix/cgroup-fs-avoid-switching-d_op-on-live-dentry.patch
>> > cgroup-fix/cgroup-fs-avoid-switching-d_op-on-live-dentry-v2.patch
>> > --- cgroup-fix/cgroup-fs-avoid-switching-d_op-on-live-dentry.patch
>> >  2010-12-21 09:31:38.649601964 +0100
>> > +++ cgroup-fix/cgroup-fs-avoid-switching-d_op-on-live-dentry-v2.patch
>> >  2010-12-21 09:40:21.151033232 +0100
>> > @@ -83,7 +83,7 @@
>> >                 inode->i_size = 0;
>> >                 inode->i_fop = &cgroup_file_operations;
>> >         }
>> > --      dentry->d_op = &cgroup_dops;
>> > +-      d_set_d_op(dentry, &cgroup_dops);
>> >         d_instantiate(dentry, inode);
>> >         dget(dentry);   /* Extra count - pin the dentry in core */
>> >         return 0;
>
> How about not doing that d_set_d_op() at all?  See #d_op in vfs-2.6.git;
> just set ->s_d_op to that once and be done with that.  No need to reassign
> it on a live dentry...

It shouldn't be live there after my patch, but either way it is fixed,
doesn't matter. Your s_d_op patch allows more reuse of code, so
that looks nicer.


More information about the systemd-devel mailing list