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

Commit 1957e7fd authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:
  cifs: cope with negative dentries in cifs_get_root
  cifs: convert prefixpath delimiters in cifs_build_path_to_root
  CIFS: Fix missing a decrement of inFlight value
  cifs: demote DFS referral lookup errors to cFYI
  Revert "cifs: advertise the right receive buffer size to the server"
parents ce195d32 80975d21
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -141,10 +141,11 @@ char *cifs_compose_mount_options(const char *sb_mountdata,

	rc = dns_resolve_server_name_to_ip(*devname, &srvIP);
	if (rc < 0) {
		cERROR(1, "%s: Failed to resolve server part of %s to IP: %d",
		cFYI(1, "%s: Failed to resolve server part of %s to IP: %d",
			__func__, *devname, rc);
		goto compose_mount_options_err;
	}

	/* md_len = strlen(...) + 12 for 'sep+prefixpath='
	 * assuming that we have 'unc=' and 'ip=' in
	 * the original sb_mountdata
+4 −0
Original line number Diff line number Diff line
@@ -563,6 +563,10 @@ cifs_get_root(struct smb_vol *vol, struct super_block *sb)
		mutex_unlock(&dir->i_mutex);
		dput(dentry);
		dentry = child;
		if (!dentry->d_inode) {
			dput(dentry);
			dentry = ERR_PTR(-ENOENT);
		}
	} while (!IS_ERR(dentry));
	_FreeXid(xid);
	kfree(full_path);
+2 −2
Original line number Diff line number Diff line
@@ -79,7 +79,7 @@ dns_resolve_server_name_to_ip(const char *unc, char **ip_addr)
	/* Perform the upcall */
	rc = dns_query(NULL, hostname, len, NULL, ip_addr, NULL);
	if (rc < 0)
		cERROR(1, "%s: unable to resolve: %*.*s",
		cFYI(1, "%s: unable to resolve: %*.*s",
			__func__, len, len, hostname);
	else
		cFYI(1, "%s: resolved: %*.*s to %s",
+2 −12
Original line number Diff line number Diff line
@@ -764,20 +764,10 @@ char *cifs_build_path_to_root(struct smb_vol *vol, struct cifs_sb_info *cifs_sb,
	if (full_path == NULL)
		return full_path;

	if (dfsplen) {
	if (dfsplen)
		strncpy(full_path, tcon->treeName, dfsplen);
		/* switch slash direction in prepath depending on whether
		 * windows or posix style path names
		 */
		if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_POSIX_PATHS) {
			int i;
			for (i = 0; i < dfsplen; i++) {
				if (full_path[i] == '\\')
					full_path[i] = '/';
			}
		}
	}
	strncpy(full_path + dfsplen, vol->prepath, pplen);
	convert_delimiter(full_path, CIFS_DIR_SEP(cifs_sb));
	full_path[dfsplen + pplen] = 0; /* add trailing null */
	return full_path;
}
+1 −2
Original line number Diff line number Diff line
@@ -124,8 +124,7 @@ static __u32 cifs_ssetup_hdr(struct cifs_ses *ses, SESSION_SETUP_ANDX *pSMB)
	/*	that we use in next few lines                               */
	/* Note that header is initialized to zero in header_assemble */
	pSMB->req.AndXCommand = 0xFF;
	pSMB->req.MaxBufferSize = cpu_to_le16(min_t(u32, CIFSMaxBufSize - 4,
						USHRT_MAX));
	pSMB->req.MaxBufferSize = cpu_to_le16(ses->server->maxBuf);
	pSMB->req.MaxMpxCount = cpu_to_le16(ses->server->maxReq);
	pSMB->req.VcNumber = get_next_vcnum(ses);

Loading