From 1a6a32ad1c8e10f42da2f1b5a974819b1ad096b0 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 15 Jul 2013 10:05:00 -0700 Subject: [PATCH] 3.9-stable patches added patches: cifs-use-sensible-file-nlink-values-if-unprovided.patch --- ...ible-file-nlink-values-if-unprovided.patch | 39 +++++++++++++++++++ queue-3.9/series | 1 + 2 files changed, 40 insertions(+) create mode 100644 queue-3.9/cifs-use-sensible-file-nlink-values-if-unprovided.patch create mode 100644 queue-3.9/series diff --git a/queue-3.9/cifs-use-sensible-file-nlink-values-if-unprovided.patch b/queue-3.9/cifs-use-sensible-file-nlink-values-if-unprovided.patch new file mode 100644 index 00000000000..0764f79ae66 --- /dev/null +++ b/queue-3.9/cifs-use-sensible-file-nlink-values-if-unprovided.patch @@ -0,0 +1,39 @@ +From 6658b9f70ebca5fc0795b1d6d733996af1e2caa7 Mon Sep 17 00:00:00 2001 +From: Steve French +Date: Thu, 4 Jul 2013 14:38:48 -0500 +Subject: CIFS use sensible file nlink values if unprovided + +From: Steve French + +commit 6658b9f70ebca5fc0795b1d6d733996af1e2caa7 upstream. + +Certain servers may not set the NumberOfLinks field in query file/path +info responses. In such a case, cifs_inode_needs_reval() assumes that +all regular files are hardlinks and triggers revalidation, leading to +excessive and unnecessary network traffic. + +This change hardcodes cf_nlink (and subsequently i_nlink) when not +returned by the server, similar to what already occurs in cifs_mkdir(). + +Signed-off-by: David Disseldorp +Signed-off-by: Steve French +Signed-off-by: Greg Kroah-Hartman + +--- + fs/cifs/inode.c | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/fs/cifs/inode.c ++++ b/fs/cifs/inode.c +@@ -556,6 +556,11 @@ cifs_all_info_to_fattr(struct cifs_fattr + fattr->cf_mode &= ~(S_IWUGO); + + fattr->cf_nlink = le32_to_cpu(info->NumberOfLinks); ++ if (fattr->cf_nlink < 1) { ++ cifs_dbg(1, "replacing bogus file nlink value %u\n", ++ fattr->cf_nlink); ++ fattr->cf_nlink = 1; ++ } + } + + fattr->cf_uid = cifs_sb->mnt_uid; diff --git a/queue-3.9/series b/queue-3.9/series new file mode 100644 index 00000000000..f1c5d1dfa7b --- /dev/null +++ b/queue-3.9/series @@ -0,0 +1 @@ +cifs-use-sensible-file-nlink-values-if-unprovided.patch -- 2.47.3