public inbox for linux-next@vger.kernel.org 
 help / color / mirror / Atom feed
* Re: [patch] cgroup fs: avoid switching ->d_op on live dentry
@ 2010-12-21  8:44 Sedat Dilek
  2010-12-21  8:55 ` Nick Piggin
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Sedat Dilek @ 2010-12-21  8:44 UTC (permalink / raw)
  To: Nick Piggin; +Cc: systemd-devel, linux-fsdevel, linux-next, eparis

Against linux-next (next-20101210) it should look like:

$ 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;

- Sedat -

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [patch] cgroup fs: avoid switching ->d_op on live dentry
  2010-12-21  8:44 [patch] cgroup fs: avoid switching ->d_op on live dentry Sedat Dilek
@ 2010-12-21  8:55 ` Nick Piggin
  2010-12-21 13:35   ` Sedat Dilek
  2010-12-21 18:25   ` Al Viro
  2010-12-21 15:12 ` Sedat Dilek
  2010-12-21 15:28 ` Sedat Dilek
  2 siblings, 2 replies; 11+ messages in thread
From: Nick Piggin @ 2010-12-21  8:55 UTC (permalink / raw)
  To: sedat.dilek; +Cc: linux-fsdevel, linux-next, systemd-devel, Nick Piggin, eparis

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;
> 
> - Sedat -

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [patch] cgroup fs: avoid switching ->d_op on live dentry
  2010-12-21  8:55 ` Nick Piggin
@ 2010-12-21 13:35   ` Sedat Dilek
  2010-12-21 18:25   ` Al Viro
  1 sibling, 0 replies; 11+ messages in thread
From: Sedat Dilek @ 2010-12-21 13:35 UTC (permalink / raw)
  To: Nick Piggin; +Cc: linux-fsdevel, linux-next, systemd-devel, eparis

On Tue, Dec 21, 2010 at 9:55 AM, Nick Piggin <npiggin@kernel•dk> 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;
>>
>> - Sedat -
>

I just started the compilation due to slow kernel mirrors, I see this warning:

$ egrep 'kernel/cgroup.o|kernel/cgroup.c'
build_linux-next_next20101221.dileks.1.log
  CC      kernel/cgroup.o
/home/sd/src/linux-2.6/linux-2.6.37-rc6/debian/build/source_i386_none/kernel/cgroup.c:
In function ‘cgroup_lookup’:
/home/sd/src/linux-2.6/linux-2.6.37-rc6/debian/build/source_i386_none/kernel/cgroup.c:2219:3:
warning: initialization from incompatible pointer type

[ kernel/cgroup.c ]
...
static int cgroup_delete_dentry(struct dentry *dentry)
{
        return 1;
}

static struct dentry *cgroup_lookup(struct inode *dir,
                        struct dentry *dentry, struct nameidata *nd)
{
        static const struct dentry_operations cgroup_dentry_operations = {
                .d_delete = cgroup_delete_dentry, <--- LINE #2219
                .d_iput = cgroup_diput,
        };

        if (dentry->d_name.len > NAME_MAX)
                return ERR_PTR(-ENAMETOOLONG);
        dentry->d_op = &cgroup_dentry_operations;
        d_add(dentry, NULL);
        return NULL;
}
...

Can you fix that with your rebasing, too?
Thanks in advance.

- Sedat -
_______________________________________________
systemd-devel mailing list
systemd-devel@lists•freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [patch] cgroup fs: avoid switching ->d_op on live dentry
  2010-12-21  8:44 [patch] cgroup fs: avoid switching ->d_op on live dentry Sedat Dilek
  2010-12-21  8:55 ` Nick Piggin
@ 2010-12-21 15:12 ` Sedat Dilek
  2010-12-21 15:28 ` Sedat Dilek
  2 siblings, 0 replies; 11+ messages in thread
From: Sedat Dilek @ 2010-12-21 15:12 UTC (permalink / raw)
  To: Nick Piggin; +Cc: systemd-devel, linux-fsdevel, linux-next, eparis

[-- Attachment #1: Type: text/plain, Size: 2173 bytes --]

On Tue, Dec 21, 2010 at 9:44 AM, Sedat Dilek <sedat.dilek@googlemail•com> wrote:
> Against linux-next (next-20101210) it should look like:
>
> $ 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;
>
> - Sedat -
>

YAY!!!

# dmesg | grep systemd
[    0.000000] Kernel command line:
BOOT_IMAGE=/boot/vmlinuz-2.6.37-rc6-686
root=UUID=1ceb69a7-ecf4-47e9-a231-b74e0f0a9b62 ro ini
[    4.124563] systemd[1]: systemd 15 running in system mode. (+PAM
-LIBWRAP -AUDIT +SELINUX +SYSVINIT -LIBCRYPTSETUP; debian)
[    4.246090] systemd[1]: Set hostname to <tbox>.
[    6.942949] systemd-logger[290]: Got error on stream: No such
process
[    9.011378] systemd-fsck[524]: /dev/sda3: sauber, 128062/640848
Dateien, 1839774/2560359 Blöcke
[   15.186112] systemd[1]: ifupdown-clean.service: control process
exited, code=exited status=209
[   15.186941] systemd[1]: Unit ifupdown-clean.service entered failed state.
[   15.187363] systemd[1]: mountoverflowtmp.service: control process
exited, code=exited status=209
[   15.206223] systemd[1]: Unit mountoverflowtmp.service entered failed state.
[   15.215739] systemd[1]: resolvconf.service: control process exited,
code=exited status=209
[   15.235257] systemd[1]: Unit resolvconf.service entered failed state.

Feel free to add:

       Reported-and-tested-by: Sedat Dilek <sedat.dilek@gmail•com>

(Tested with the above v2 patch against linux-next (next-20101221) -
see file attachment).

- Sedat -

[-- Attachment #2: cgroup-fs-avoid-switching-d_op-on-live-dentry-v2.patch --]
[-- Type: plain/text, Size: 3277 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [patch] cgroup fs: avoid switching ->d_op on live dentry
  2010-12-21  8:44 [patch] cgroup fs: avoid switching ->d_op on live dentry Sedat Dilek
  2010-12-21  8:55 ` Nick Piggin
  2010-12-21 15:12 ` Sedat Dilek
@ 2010-12-21 15:28 ` Sedat Dilek
  2010-12-21 17:56   ` Sedat Dilek
  2 siblings, 1 reply; 11+ messages in thread
From: Sedat Dilek @ 2010-12-21 15:28 UTC (permalink / raw)
  To: Nick Piggin; +Cc: systemd-devel, linux-fsdevel, linux-next, eparis

[-- Attachment #1: Type: text/plain, Size: 1226 bytes --]

What about using d_set_d_op() ?

- Sedat -

$ diff -Naur orig/cgroup-fs-avoid-switching-d_op-on-live-dentry.patch
cgroup-fs-avoid-switching-d_op-on-live-dentry-v3.patch
--- orig/cgroup-fs-avoid-switching-d_op-on-live-dentry.patch
2010-12-21 09:31:38.649601964 +0100
+++ cgroup-fs-avoid-switching-d_op-on-live-dentry-v3.patch
2010-12-21 16:23:29.147497577 +0100
@@ -21,6 +21,9 @@
 ---
 One of the patches in my vfs scaling series tripped over this, comments?

+v2: Refreshed to fit linux-next (next-20101220)
+v3: Use d_set_d_op()
+
  kernel/cgroup.c |   27 ++++++++++++++++++++++-----
  1 file changed, 22 insertions(+), 5 deletions(-)

@@ -68,7 +71,7 @@

 +      if (dentry->d_name.len > NAME_MAX)
 +              return ERR_PTR(-ENAMETOOLONG);
-+      dentry->d_op = &cgroup_dentry_operations;
++      d_set_d_op(dentry, &cgroup_dentry_operations);
 +      d_add(dentry, NULL);
 +      return NULL;
 +}
@@ -83,7 +86,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;

[-- Attachment #2: cgroup-fs-avoid-switching-d_op-on-live-dentry-v3.patch --]
[-- Type: plain/text, Size: 3303 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [patch] cgroup fs: avoid switching ->d_op on live dentry
  2010-12-21 15:28 ` Sedat Dilek
@ 2010-12-21 17:56   ` Sedat Dilek
  0 siblings, 0 replies; 11+ messages in thread
From: Sedat Dilek @ 2010-12-21 17:56 UTC (permalink / raw)
  To: Nick Piggin; +Cc: systemd-devel, linux-fsdevel, linux-next, eparis

On Tue, Dec 21, 2010 at 4:28 PM, Sedat Dilek <sedat.dilek@googlemail•com> wrote:
> What about using d_set_d_op() ?
>
> - Sedat -
>
> $ diff -Naur orig/cgroup-fs-avoid-switching-d_op-on-live-dentry.patch
> cgroup-fs-avoid-switching-d_op-on-live-dentry-v3.patch
> --- orig/cgroup-fs-avoid-switching-d_op-on-live-dentry.patch
> 2010-12-21 09:31:38.649601964 +0100
> +++ cgroup-fs-avoid-switching-d_op-on-live-dentry-v3.patch
> 2010-12-21 16:23:29.147497577 +0100
> @@ -21,6 +21,9 @@
>  ---
>  One of the patches in my vfs scaling series tripped over this, comments?
>
> +v2: Refreshed to fit linux-next (next-20101220)
> +v3: Use d_set_d_op()
> +
>  kernel/cgroup.c |   27 ++++++++++++++++++++++-----
>  1 file changed, 22 insertions(+), 5 deletions(-)
>
> @@ -68,7 +71,7 @@
>
>  +      if (dentry->d_name.len > NAME_MAX)
>  +              return ERR_PTR(-ENAMETOOLONG);
> -+      dentry->d_op = &cgroup_dentry_operations;
> ++      d_set_d_op(dentry, &cgroup_dentry_operations);
>  +      d_add(dentry, NULL);
>  +      return NULL;
>  +}
> @@ -83,7 +86,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;
>

v3 compiled and running (failed systemd services needs some
investigations, but that is another story).

BTW, I have enabled some cgroup debug options:

# grep -i cgroup /boot/config-$(uname -r)
CONFIG_CGROUPS=y
CONFIG_CGROUP_DEBUG=y
CONFIG_CGROUP_NS=y
CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_CGROUP_SCHED=y
CONFIG_BLK_CGROUP=y
CONFIG_DEBUG_BLK_CGROUP=y
CONFIG_NET_CLS_CGROUP=y

- Sedat -

P.S.:

# cat /proc/version
Linux version 2.6.37-rc6-686 (Debian
2.6.37~rc6-8~next20101221.dileks.2) (sedat.dilek@gmail•com) (gcc
version 4.5.2 (Debian 4.5.2-1) ) #1 SMP Tue Dec 21 18:25:45 CET 2010

# dmesg | egrep -i 'systemd|cgroup'
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Kernel command line:
BOOT_IMAGE=/boot/vmlinuz-2.6.37-rc6-686
root=UUID=1ceb69a7-ecf4-47e9-a231-b74e0f0a9b62 ro init=/bin/systemd
radeon.modeset=1 lapic 3
[    0.004574] Initializing cgroup subsys debug
[    0.004615] Initializing cgroup subsys ns
[    0.004651] ns_cgroup deprecated: consider using the
'clone_children' flag without the ns_cgroup.
[    0.004700] Initializing cgroup subsys cpuacct
[    0.004739] Initializing cgroup subsys devices
[    0.004775] Initializing cgroup subsys freezer
[    0.004810] Initializing cgroup subsys net_cls
[    0.004846] Initializing cgroup subsys blkio
[    4.111878] systemd[1]: systemd 15 running in system mode. (+PAM
-LIBWRAP -AUDIT +SELINUX +SYSVINIT -LIBCRYPTSETUP; debian)
[    4.241710] systemd[1]: Set hostname to <tbox>.
[    7.096444] systemd-logger[284]: Got error on stream: No such process
[    9.123292] systemd-fsck[499]: /dev/sda3: sauber, 128016/640848
Dateien, 1788184/2560359 Blöcke
[   15.411402] systemd[1]: ifupdown-clean.service: control process
exited, code=exited status=209
[   15.420338] systemd[1]: Unit ifupdown-clean.service entered failed state.
[   15.420808] systemd[1]: mountoverflowtmp.service: control process
exited, code=exited status=209
[   15.437782] systemd[1]: Unit mountoverflowtmp.service entered failed state.
[   15.451162] systemd[1]: resolvconf.service: control process exited,
code=exited status=209
[   15.470512] systemd[1]: Unit resolvconf.service entered failed state.
[   15.480271] systemd[1]: policykit.service: control process exited,
code=exited status=209
[   15.500513] systemd[1]: Unit policykit.service entered failed state.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [patch] cgroup fs: avoid switching ->d_op on live dentry
  2010-12-21  8:55 ` Nick Piggin
  2010-12-21 13:35   ` Sedat Dilek
@ 2010-12-21 18:25   ` Al Viro
  2010-12-21 18:57     ` Sedat Dilek
                       ` (2 more replies)
  1 sibling, 3 replies; 11+ messages in thread
From: Al Viro @ 2010-12-21 18:25 UTC (permalink / raw)
  To: Nick Piggin; +Cc: sedat.dilek, systemd-devel, linux-fsdevel, linux-next, eparis

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...

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [patch] cgroup fs: avoid switching ->d_op on live dentry
  2010-12-21 18:25   ` Al Viro
@ 2010-12-21 18:57     ` Sedat Dilek
  2010-12-22  3:11     ` Nick Piggin
  2010-12-22  4:38     ` Sedat Dilek
  2 siblings, 0 replies; 11+ messages in thread
From: Sedat Dilek @ 2010-12-21 18:57 UTC (permalink / raw)
  To: Al Viro; +Cc: Nick Piggin, systemd-devel, linux-fsdevel, linux-next, eparis

On Tue, Dec 21, 2010 at 7:25 PM, Al Viro <viro@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...
>

The kernel mirrors are very slow since yesterday.
Checking out and online-browsing your repo [1] is no fun.
On a very quick view I don't see a cgroup fix.

Can you please offer a revised full patch?
Thanks in advance.

Personally, I am glad to be able to use systemd, again.

- Sedat -

[1] http://git.kernel.org/?p=linux/kernel/git/viro/vfs-2.6.git;a=shortlog;h=refs/heads/d_op

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [patch] cgroup fs: avoid switching ->d_op on live dentry
  2010-12-21 18:25   ` Al Viro
  2010-12-21 18:57     ` Sedat Dilek
@ 2010-12-22  3:11     ` Nick Piggin
  2010-12-22  3:31       ` Sedat Dilek
  2010-12-22  4:38     ` Sedat Dilek
  2 siblings, 1 reply; 11+ messages in thread
From: Nick Piggin @ 2010-12-22  3:11 UTC (permalink / raw)
  To: Al Viro
  Cc: Nick Piggin, sedat.dilek, systemd-devel, linux-fsdevel,
	linux-next, eparis

On Wed, Dec 22, 2010 at 5:25 AM, Al Viro <viro@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.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [patch] cgroup fs: avoid switching ->d_op on live dentry
  2010-12-22  3:11     ` Nick Piggin
@ 2010-12-22  3:31       ` Sedat Dilek
  0 siblings, 0 replies; 11+ messages in thread
From: Sedat Dilek @ 2010-12-22  3:31 UTC (permalink / raw)
  To: Nick Piggin, Al Viro; +Cc: systemd-devel, linux-fsdevel, linux-next, eparis

On Wed, Dec 22, 2010 at 4:11 AM, Nick Piggin <npiggin@gmail•com> wrote:
> On Wed, Dec 22, 2010 at 5:25 AM, Al Viro <viro@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.
>

Hi Nick, Hi Al,

IIRC that vfs-2.6.git#d_op is not in linux-next?
[2] uses "vfs             git
git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6.git#for-next"?
Will this tree go into 2.6.38?
I tried to pull that tree into linux-next which resulted into many CONFLICTs.

As far as I have understood:
To use s_d_op for kernel/cgroup.c at least means to cherry-pick
"per-superblock default ->d_op" commit [2]?

If Al's tree is expected to be in 2.6.38, it would be good that both
vfs-related trees "vfs-2.6#d_op" and "vfs-scale-working" would be
coordinated.

Can you give details on the plans for 2.6.38 (for linux-next)?
Thanks.

- Sedat -

[1] http://git.kernel.org/?p=linux/kernel/git/next/linux-next.git;a=blob;f=Next/Trees#l84
[2] http://git.kernel.org/?p=linux/kernel/git/viro/vfs-2.6.git;a=commit;h=ee2d6af5897a21441f1ded8c3551da073cbcda87
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger•kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [patch] cgroup fs: avoid switching ->d_op on live dentry
  2010-12-21 18:25   ` Al Viro
  2010-12-21 18:57     ` Sedat Dilek
  2010-12-22  3:11     ` Nick Piggin
@ 2010-12-22  4:38     ` Sedat Dilek
  2 siblings, 0 replies; 11+ messages in thread
From: Sedat Dilek @ 2010-12-22  4:38 UTC (permalink / raw)
  To: Al Viro; +Cc: Nick Piggin, systemd-devel, linux-fsdevel, linux-next, eparis

On Tue, Dec 21, 2010 at 7:25 PM, Al Viro <viro@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...
>

Hey, cool :-)!
Still waiting to see the content of "switch cgroup" commit in
vfs-2.6#d_op GIT from [1] (slow kernel-mirrors [2]).
Thank you Al for the quick execution!

- Sedat -

[1] http://git.kernel.org/?p=linux/kernel/git/viro/vfs-2.6.git;a=commit;h=0438db3de35bc969624794d6b891e2a178e24645
[2] https://lkml.org/lkml/2010/12/21/361
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger•kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2010-12-22  4:38 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-12-21  8:44 [patch] cgroup fs: avoid switching ->d_op on live dentry Sedat Dilek
2010-12-21  8:55 ` Nick Piggin
2010-12-21 13:35   ` Sedat Dilek
2010-12-21 18:25   ` Al Viro
2010-12-21 18:57     ` Sedat Dilek
2010-12-22  3:11     ` Nick Piggin
2010-12-22  3:31       ` Sedat Dilek
2010-12-22  4:38     ` Sedat Dilek
2010-12-21 15:12 ` Sedat Dilek
2010-12-21 15:28 ` Sedat Dilek
2010-12-21 17:56   ` Sedat Dilek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox