patch-2.4.5 linux/fs/smbfs/dir.c
Next file: linux/fs/smbfs/file.c
Previous file: linux/fs/smbfs/ChangeLog
Back to the patch index
Back to the overall index
- Lines: 33
- Date:
Tue May 15 13:40:55 2001
- Orig file:
v2.4.4/linux/fs/smbfs/dir.c
- Orig date:
Fri Feb 16 16:03:24 2001
diff -u --recursive --new-file v2.4.4/linux/fs/smbfs/dir.c linux/fs/smbfs/dir.c
@@ -210,10 +210,6 @@
return result;
}
-/*
- * Note: in order to allow the smbmount process to open the
- * mount point, we don't revalidate if conn_pid is NULL.
- */
static int
smb_dir_open(struct inode *dir, struct file *file)
{
@@ -230,14 +226,18 @@
*/
lock_kernel();
server = server_from_dentry(dentry);
- if (server->opt.protocol < SMB_PROTOCOL_LANMAN2)
- {
+ if (server->opt.protocol < SMB_PROTOCOL_LANMAN2) {
unsigned long age = jiffies - dir->u.smbfs_i.oldmtime;
if (age > 2*HZ)
smb_invalid_dir_cache(dir);
}
- if (server->conn_pid)
+ /*
+ * Note: in order to allow the smbmount process to open the
+ * mount point, we only revalidate if the connection is valid or
+ * if the process is trying to access something other than the root.
+ */
+ if (server->state == CONN_VALID || !IS_ROOT(dentry))
error = smb_revalidate_inode(dentry);
unlock_kernel();
return error;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)