Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9654640d authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge master.kernel.org:/pub/scm/linux/kernel/git/sfrench/cifs-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/sfrench/cifs-2.6:
  [CIFS] One line missing from previous commit
  [CIFS] mtime bounces from local to remote when cifs nocmtime i_flags overwritten
  [CIFS] fix &&/& typo in cifs_setattr()
parents b5bf28cd 004c46b9
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -92,7 +92,8 @@ cifs_read_super(struct super_block *sb, void *data,
	struct cifs_sb_info *cifs_sb;
	int rc = 0;
	
	sb->s_flags |= MS_NODIRATIME; /* and probably even noatime */
	/* BB should we make this contingent on mount parm? */
	sb->s_flags |= MS_NODIRATIME | MS_NOATIME;
	sb->s_fs_info = kzalloc(sizeof(struct cifs_sb_info),GFP_KERNEL);
	cifs_sb = CIFS_SB(sb);
	if(cifs_sb == NULL)
@@ -258,7 +259,10 @@ cifs_alloc_inode(struct super_block *sb)
	cifs_inode->clientCanCacheRead = FALSE;
	cifs_inode->clientCanCacheAll = FALSE;
	cifs_inode->vfs_inode.i_blkbits = 14;  /* 2**14 = CIFS_MAX_MSGSIZE */
	cifs_inode->vfs_inode.i_flags = S_NOATIME | S_NOCMTIME;
	
	/* Can not set i_flags here - they get immediately overwritten
	   to zero by the VFS */
/*	cifs_inode->vfs_inode.i_flags = S_NOATIME | S_NOCMTIME;*/
	INIT_LIST_HEAD(&cifs_inode->openFileList);
	return &cifs_inode->vfs_inode;
}
@@ -283,6 +287,7 @@ cifs_show_options(struct seq_file *s, struct vfsmount *m)

	if (cifs_sb) {
		if (cifs_sb->tcon) {
/* BB add prepath to mount options displayed */
			seq_printf(s, ",unc=%s", cifs_sb->tcon->treeName);
			if (cifs_sb->tcon->ses) {
				if (cifs_sb->tcon->ses->userName)
+5 −3
Original line number Diff line number Diff line
@@ -35,9 +35,11 @@
#define BAD_PROT 0xFFFF

/* SMB command codes */
/* Some commands have minimal (wct=0,bcc=0), or uninteresting, responses
 (ie which include no useful data other than the SMB error code itself).
 Knowing this helps avoid response buffer allocations and copy in some cases */
/*
 * Some commands have minimal (wct=0,bcc=0), or uninteresting, responses
 * (ie which include no useful data other than the SMB error code itself).
 * Knowing this helps avoid response buffer allocations and copy in some cases
 */
#define SMB_COM_CREATE_DIRECTORY      0x00 /* trivial response */
#define SMB_COM_DELETE_DIRECTORY      0x01 /* trivial response */
#define SMB_COM_CLOSE                 0x04 /* triv req/rsp, timestamp ignored */
+3 −2
Original line number Diff line number Diff line
@@ -1014,8 +1014,9 @@ static ssize_t cifs_write(struct file *file, const char *write_data,
	/* since the write may have blocked check these pointers again */
	if (file->f_path.dentry) {
		if (file->f_path.dentry->d_inode) {
			file->f_path.dentry->d_inode->i_ctime =
			file->f_path.dentry->d_inode->i_mtime = CURRENT_TIME;
/*BB We could make this contingent on superblock ATIME flag too */
/*			file->f_path.dentry->d_inode->i_ctime =
			file->f_path.dentry->d_inode->i_mtime = CURRENT_TIME;*/
			if (total_written > 0) {
				if (*poffset > file->f_path.dentry->d_inode->i_size)
					i_size_write(file->f_path.dentry->d_inode,
+6 −1
Original line number Diff line number Diff line
@@ -90,6 +90,9 @@ int cifs_get_inode_info_unix(struct inode **pinode,
				(*pinode)->i_ino =
					(unsigned long)findData.UniqueId;
			} /* note ino incremented to unique num in new_inode */
			if(sb->s_flags & MS_NOATIME)
				(*pinode)->i_flags |= S_NOATIME | S_NOCMTIME;
				
			insert_inode_hash(*pinode);
		}

@@ -421,6 +424,8 @@ int cifs_get_inode_info(struct inode **pinode,
				} else /* do we need cast or hash to ino? */
					(*pinode)->i_ino = inode_num;
			} /* else ino incremented to unique num in new_inode*/
			if(sb->s_flags & MS_NOATIME)
				(*pinode)->i_flags |= S_NOATIME | S_NOCMTIME;
			insert_inode_hash(*pinode);
		}
		inode = *pinode;
@@ -1359,7 +1364,7 @@ int cifs_setattr(struct dentry *direntry, struct iattr *attrs)
		and this check ensures that we are not being called from
		sys_utimes in which case we ought to fail the call back to
		the user when the server rejects the call */
		if((rc) && (attrs->ia_valid &&
		if((rc) && (attrs->ia_valid &
			 (ATTR_MODE | ATTR_GID | ATTR_UID | ATTR_SIZE)))
			rc = 0;
	}
+2 −1
Original line number Diff line number Diff line
@@ -77,7 +77,8 @@ cifs_hardlink(struct dentry *old_file, struct inode *inode,
		cifsInode = CIFS_I(old_file->d_inode);
		if(rc == 0) {
			old_file->d_inode->i_nlink++;
			old_file->d_inode->i_ctime = CURRENT_TIME;
/* BB should we make this contingent on superblock flag NOATIME? */
/*			old_file->d_inode->i_ctime = CURRENT_TIME;*/
			/* parent dir timestamps will update from srv
			within a second, would it really be worth it
			to set the parent dir cifs inode time to zero
Loading