Subject: linux-next: manual merge of the fsnotify tree with the vfs tree

From: Stephen Rothwell <[email-masked]>
Date: Tue, 2 Feb 2010 15:26:05 +1100

Hi Eric,

Today's linux-next merge of the fsnotify tree got a conflict in
kernel/audit_tree.c between commit
1a527a2c261ad15dd15d5ee7763d3afcd8c084e9 ("new helper: iterate_mounts()")
from the vfs tree and commits 0bb4b47eebb9d06546c9beae77dc283fbb43ea35
("audit: reimplement audit_trees using fsnotify rather than inotify")
and 98d4301cc7c8828ea41432a62a3216212ffda250 ("fsnotify: put inode
specific fields in an fsnotify_mark in a union") from the fsnotify tree.

I think I fixed it up (see below) and can carry the fix as necessary.
-- 
Cheers,
Stephen Rothwell                    [email-masked]

diff --cc kernel/audit_tree.c
index 028e856,a9167f9..0000000
--- a/kernel/audit_tree.c
+++ b/kernel/audit_tree.c
@@@ -581,12 -594,20 +598,13 @@@ void audit_trim_trees(void
  		if (!root_mnt)
  			goto skip_it;
  
 -		list_add_tail(&list, &root_mnt->mnt_list);
  		spin_lock(&hash_lock);
  		list_for_each_entry(node, &tree->chunks, list) {
- 			struct inode *inode = find_chunk(node)->watch.inode;
 -			struct audit_chunk *chunk = find_chunk(node);
+ 			/* this could be NULL if the watch is dieing else where... */
 -			struct inode *inode = chunk->mark.i.inode;
 -			struct vfsmount *mnt;
++			struct inode *inode = find_chunk(node)->mark.i.inode;
  			node->index |= 1U<<31;
 -			list_for_each_entry(mnt, &list, mnt_list) {
 -				if (mnt->mnt_root->d_inode == inode) {
 -					node->index &= ~(1U<<31);
 -					break;
 -				}
 -			}
 +			if (iterate_mounts(compare_root, inode, root_mnt))
 +				node->index &= ~(1U<<31);
  		}
  		spin_unlock(&hash_lock);
  		trim_marked(tree);