autofs4: revert - redo lookup in ttfd
This patch series enables the use of a single dentry for lookups prior to
the dentry being hashed and so we no longer need to redo the lookup.  This
patch reverts the patch of commit
033790449b.
Signed-off-by: Ian Kent <raven@themaw.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
			
			
This commit is contained in:
		
							parent
							
								
									5f6f4f28b6
								
							
						
					
					
						commit
						caf7da3d5d
					
				| @ -242,7 +242,6 @@ static int try_to_fill_dentry(struct dentry *dentry, int flags) | ||||
| { | ||||
| 	struct autofs_sb_info *sbi = autofs4_sbi(dentry->d_sb); | ||||
| 	struct autofs_info *ino = autofs4_dentry_ino(dentry); | ||||
| 	struct dentry *new; | ||||
| 	int status; | ||||
| 
 | ||||
| 	/* Block on any pending expiry here; invalidate the dentry
 | ||||
| @ -320,26 +319,6 @@ static int try_to_fill_dentry(struct dentry *dentry, int flags) | ||||
| 	dentry->d_flags &= ~DCACHE_AUTOFS_PENDING; | ||||
| 	spin_unlock(&dentry->d_lock); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * The dentry that is passed in from lookup may not be the one | ||||
| 	 * we end up using, as mkdir can create a new one.  If this | ||||
| 	 * happens, and another process tries the lookup at the same time, | ||||
| 	 * it will set the PENDING flag on this new dentry, but add itself | ||||
| 	 * to our waitq.  Then, if after the lookup succeeds, the first | ||||
| 	 * process that requested the mount performs another lookup of the | ||||
| 	 * same directory, it will show up as still pending!  So, we need | ||||
| 	 * to redo the lookup here and clear pending on that dentry. | ||||
| 	 */ | ||||
| 	if (d_unhashed(dentry)) { | ||||
| 		new = d_lookup(dentry->d_parent, &dentry->d_name); | ||||
| 		if (new) { | ||||
| 			spin_lock(&new->d_lock); | ||||
| 			new->d_flags &= ~DCACHE_AUTOFS_PENDING; | ||||
| 			spin_unlock(&new->d_lock); | ||||
| 			dput(new); | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user