Hi Greg, Today's linux-next merge of the staging tree got conflicts in drivers/staging/lustre/lustre/llite/dcache.c, drivers/staging/lustre/lustre/llite/llite_internal.h, drivers/staging/lustre/lustre/llite/llite_lib.c, drivers/staging/lustre/lustre/llite/namei.c and drivers/staging/lustre/lustre/llite/statahead.c between various commits from the vfs tree and commit 2d00bd17a270 ("staging: lustre: Coalesce string fragments") from the staging tree. I fixed it up (see below) and can carry the fix as necessary (no action is required). -- Cheers, Stephen Rothwell sfr@canb.auug.org.au diff --cc drivers/staging/lustre/lustre/llite/dcache.c index f692261e9b5c,5f03c5fbb098..000000000000 --- a/drivers/staging/lustre/lustre/llite/dcache.c +++ b/drivers/staging/lustre/lustre/llite/dcache.c @@@ -258,9 -258,10 +258,9 @@@ void ll_invalidate_aliases(struct inod inode->i_ino, inode->i_generation, inode); ll_lock_dcache(inode); - ll_d_hlist_for_each_entry(dentry, p, &inode->i_dentry, d_alias) { - CDEBUG(D_DENTRY, "dentry in drop %.*s (%p) parent %p inode %p flags %d\n", - dentry->d_name.len, dentry->d_name.name, - dentry, dentry->d_parent, + ll_d_hlist_for_each_entry(dentry, p, &inode->i_dentry, d_u.d_alias) { - CDEBUG(D_DENTRY, "dentry in drop %pd (%p) parent %p " - "inode %p flags %d\n", dentry, dentry, dentry->d_parent, ++ CDEBUG(D_DENTRY, "dentry in drop %pd (%p) parent %p inode %p flags %d\n", ++ dentry, dentry, dentry->d_parent, dentry->d_inode, dentry->d_flags); if (unlikely(dentry == dentry->d_sb->s_root)) { diff --cc drivers/staging/lustre/lustre/llite/llite_internal.h index 77d1c12704b4,79fc29b3710c..000000000000 --- a/drivers/staging/lustre/lustre/llite/llite_internal.h +++ b/drivers/staging/lustre/lustre/llite/llite_internal.h @@@ -1489,8 -1489,8 +1489,8 @@@ static inline void __d_lustre_invalidat */ static inline void d_lustre_invalidate(struct dentry *dentry, int nested) { - CDEBUG(D_DENTRY, "invalidate dentry %pd (%p) parent %p inode %p " - "refc %d\n", dentry, dentry, - CDEBUG(D_DENTRY, "invalidate dentry %.*s (%p) parent %p inode %p refc %d\n", - dentry->d_name.len, dentry->d_name.name, dentry, ++ CDEBUG(D_DENTRY, "invalidate dentry %pd (%p) parent %p inode %p refc %d\n", ++ dentry, dentry, dentry->d_parent, dentry->d_inode, d_count(dentry)); spin_lock_nested(&dentry->d_lock, diff --cc drivers/staging/lustre/lustre/llite/llite_lib.c index 7b6b9e2e0102,3b0336029da3..000000000000 --- a/drivers/staging/lustre/lustre/llite/llite_lib.c +++ b/drivers/staging/lustre/lustre/llite/llite_lib.c @@@ -698,8 -690,10 +690,8 @@@ void lustre_dump_dentry(struct dentry * list_for_each(tmp, &dentry->d_subdirs) subdirs++; - CERROR("dentry %p dump: name=%pd parent=%p, inode=%p, count=%u," - " flags=0x%x, fsdata=%p, %d subdirs\n", dentry, dentry, - CERROR("dentry %p dump: name=%.*s parent=%.*s (%p), inode=%p, count=%u, flags=0x%x, fsdata=%p, %d subdirs\n", - dentry, - dentry->d_name.len, dentry->d_name.name, - dentry->d_parent->d_name.len, dentry->d_parent->d_name.name, ++ CERROR("dentry %p dump: name=%pd parent=%p, inode=%p, count=%u, flags=0x%x, fsdata=%p, %d subdirs\n", ++ dentry, dentry, dentry->d_parent, dentry->d_inode, d_count(dentry), dentry->d_flags, dentry->d_fsdata, subdirs); if (dentry->d_inode != NULL) diff --cc drivers/staging/lustre/lustre/llite/namei.c index 8e926b385a60,671d0cd2a6a2..000000000000 --- a/drivers/staging/lustre/lustre/llite/namei.c +++ b/drivers/staging/lustre/lustre/llite/namei.c @@@ -598,9 -619,8 +598,8 @@@ static int ll_atomic_open(struct inode long long lookup_flags = LOOKUP_OPEN; int rc = 0; - CDEBUG(D_VFSTRACE, "VFS Op:name=%pd,dir=%lu/%u(%p),file %p," - "open_flags %x,mode %x opened %d\n", - CDEBUG(D_VFSTRACE, "VFS Op:name=%.*s,dir=%lu/%u(%p),file %p,open_flags %x,mode %x opened %d\n", - dentry->d_name.len, dentry->d_name.name, dir->i_ino, ++ CDEBUG(D_VFSTRACE, "VFS Op:name=%pd,dir=%lu/%u(%p),file %p, open_flags %x,mode %x opened %d\n", + dentry, dir->i_ino, dir->i_generation, dir, file, open_flags, mode, *opened); it = kzalloc(sizeof(*it), GFP_NOFS); @@@ -843,12 -862,11 +842,11 @@@ static int ll_create_nd(struct inode *d { int rc; - CDEBUG(D_VFSTRACE, "VFS Op:name=%pd,dir=%lu/%u(%p)," - "flags=%u, excl=%d\n", - CDEBUG(D_VFSTRACE, "VFS Op:name=%.*s,dir=%lu/%u(%p),flags=%u, excl=%d\n", - dentry->d_name.len, dentry->d_name.name, dir->i_ino, ++ CDEBUG(D_VFSTRACE, "VFS Op:name=%pd,dir=%lu/%u(%p), flags=%u, excl=%d\n", + dentry, dir->i_ino, dir->i_generation, dir, mode, want_excl); - rc = ll_mknod_generic(dir, &dentry->d_name, mode, 0, dentry); + rc = ll_mknod(dir, dentry, mode, 0); ll_stats_ops_tally(ll_i2sbi(dir), LPROC_LL_CREATE, 1); @@@ -974,7 -1101,8 +972,7 @@@ out * Instead, ll_ddelete() and ll_d_iput() will update it based upon if there * is any lock existing. They will recycle dentries and inodes based upon locks * too. b=20433 */ - static int ll_unlink(struct inode * dir, struct dentry *dentry) -static int ll_unlink_generic(struct inode *dir, struct dentry *dparent, - struct dentry *dchild, struct qstr *name) ++static int ll_unlink(struct inode *dir, struct dentry *dentry) { struct ptlrpc_request *request = NULL; struct md_op_data *op_data; diff --cc drivers/staging/lustre/lustre/llite/statahead.c index 09d965e76842,c4bd09edb0ce..000000000000 --- a/drivers/staging/lustre/lustre/llite/statahead.c +++ b/drivers/staging/lustre/lustre/llite/statahead.c @@@ -1612,9 -1609,9 +1609,8 @@@ int do_statahead_enter(struct inode *di } else if ((*dentryp)->d_inode != inode) { /* revalidate, but inode is recreated */ CDEBUG(D_READA, - "stale dentry %pd inode %lu/%u, " - "statahead inode %lu/%u\n", - "stale dentry %.*s inode %lu/%u, statahead inode %lu/%u\n", - (*dentryp)->d_name.len, - (*dentryp)->d_name.name, ++ "stale dentry %pd inode %lu/%u, statahead inode %lu/%u\n", + *dentryp, (*dentryp)->d_inode->i_ino, (*dentryp)->d_inode->i_generation, inode->i_ino, @@@ -1665,9 -1662,8 +1661,8 @@@ if (unlikely(sai->sai_inode != parent->d_inode)) { struct ll_inode_info *nlli = ll_i2info(parent->d_inode); - CWARN("Race condition, someone changed %pd just now: " - "old parent "DFID", new parent "DFID"\n", - CWARN("Race condition, someone changed %.*s just now: old parent " DFID ", new parent " DFID "\n", - (*dentryp)->d_name.len, (*dentryp)->d_name.name, ++ CWARN("Race condition, someone changed %pd just now: old parent "DFID", new parent "DFID"\n", + *dentryp, PFID(&lli->lli_fid), PFID(&nlli->lli_fid)); dput(parent); iput(sai->sai_inode);