Comment 17 for bug 104837

Revision history for this message
Leann Ogasawara (leannogasawara) wrote :

Hi Rich,

It doesn't look like the patches have been backported to Hardy (I'll include the upstream git commit id's below). However, they do appear to be available in the upcoming Intrepid kernel. Care to maybe give the Intrepid kernel a test? It was most recently rebased with the upstream 2.6.25 kernel and is currently available in the following PPA:

https://edge.launchpad.net/~kernel-ppa/+archive

If you are not familiar with how to install packages from a PPA basically do the following . . .

Create the file /etc/apt/sources.list.d/kernel-ppa.list to include the following two lines:

deb http://ppa.launchpad.net/kernel-ppa/ubuntu hardy main
deb-src http://ppa.launchpad.net/kernel-ppa/ubuntu hardy main

Then run the command: sudo apt-get update

You should then be able to install the linux-image-2.6.25 kernel package. After you've finished testing you can remove the kernel-ppa.list file and run 'sudo apt-get update' once more. Please let us know your results.

And just for reference, the git commit id's and descriptions are as follows:

commit d599e36a9ea85432587f4550acc113cd7549d12a

Author: Nick Piggin <email address hidden>

Date: Wed Feb 6 01:37:28 2008 -0800

    inotify: fix race

    There is a race between setting an inode's children's "parent watched" flag

    when placing the first watch on a parent, and instantiating new children of

    that parent: a child could miss having its flags set by

    set_dentry_child_flags, but then inotify_d_instantiate might still see

    !inotify_inode_watched.

    The solution is to set_dentry_child_flags after adding the watch. Locking i

    taken care of, because both set_dentry_child_flags and inotify_d_instantiate

    hold dcache_lock and child->d_locks.

commit 0d71bd5993b630a989d15adc2562a9ffe41cd26d

Author: Nick Piggin <email address hidden>

Date: Wed Feb 6 01:37:29 2008 -0800

    inotify: remove debug code

    The inotify debugging code is supposed to verify that the

    DCACHE_INOTIFY_PARENT_WATCHED scalability optimisation does not result in

    notifications getting lost nor extra needless locking generated.

    Unfortunately there are also some races in the debugging code. And it isn't

    very good at finding problems anyway. So remove it for now.