test: add 'lkml' corpus

These 210 messages are in several long threads, which is good for
testing our threading code, and may be useful just as a larger test
corpus in the future.
This commit is contained in:
David Bremner 2017-04-10 23:25:39 -03:00
parent ce8c88824a
commit e08f5f76e4
210 changed files with 20503 additions and 0 deletions

View file

@ -0,0 +1,99 @@
Return-Path: <stefan@datenfreihafen.org>
X-Original-To: notmuch@notmuchmail.org
Delivered-To: notmuch@notmuchmail.org
Received: from localhost (localhost [127.0.0.1])
by olra.theworths.org (Postfix) with ESMTP id 055BC431FBF
for <notmuch@notmuchmail.org>; Sat, 21 Nov 2009 16:11:31 -0800 (PST)
X-Virus-Scanned: Debian amavisd-new at olra.theworths.org
Received: from olra.theworths.org ([127.0.0.1])
by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id Vz+mNzdau2Gh for <notmuch@notmuchmail.org>;
Sat, 21 Nov 2009 16:11:30 -0800 (PST)
Received: from sirius.lasnet.de (sirius.lasnet.de [78.47.116.19])
by olra.theworths.org (Postfix) with ESMTP id CFD61431FAE
for <notmuch@notmuchmail.org>; Sat, 21 Nov 2009 16:11:29 -0800 (PST)
Received: from p5b034af6.dip.t-dialin.net ([91.3.74.246] helo=excalibur)
by sirius.lasnet.de with esmtpsa
(Cipher TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.63 #1)
id 1NC032-0000td-2v by authid <stefan@sostec.de> with cram_md5;
Sun, 22 Nov 2009 01:11:28 +0100
Received: from stefan by excalibur with local (Exim 4.69)
(envelope-from <stefan@excalibur.local>)
id 1NC031-0001Dm-H7; Sun, 22 Nov 2009 01:11:23 +0100
From: Stefan Schmidt <stefan@datenfreihafen.org>
To: notmuch@notmuchmail.org
Date: Sun, 22 Nov 2009 01:11:01 +0100
Message-Id: <1258848661-4660-2-git-send-email-stefan@datenfreihafen.org>
X-Mailer: git-send-email 1.6.5.3
In-Reply-To: <1258848661-4660-1-git-send-email-stefan@datenfreihafen.org>
References: <yes> <1258848661-4660-1-git-send-email-stefan@datenfreihafen.org>
Subject: [notmuch] [PATCH 2/2] notmuch-new: Tag mails not as unread when the
seen flag in the maildir is set.
X-BeenThere: notmuch@notmuchmail.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "Use and development of the notmuch mail system."
<notmuch.notmuchmail.org>
List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,
<mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>
List-Archive: <http://notmuchmail.org/pipermail/notmuch>
List-Post: <mailto:notmuch@notmuchmail.org>
List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>
List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,
<mailto:notmuch-request@notmuchmail.org?subject=subscribe>
X-List-Received-Date: Sun, 22 Nov 2009 00:11:31 -0000
With the new notmuch_message_get_flags() function we can get the information if
a message was already flagged as seen in maildir by another mailer or tool. This
gives a more realistic picture instead of flagging all as unread.
Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
---
Makefile | 2 +-
notmuch-new.c | 16 +++++++++++++++-
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index 3fedcf1..dfcfc70 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
# Default FLAGS, (can be overridden by user such as "make CFLAGS=-O2")
WARN_FLAGS=-Wall -Wextra -Wmissing-declarations -Wwrite-strings -Wswitch-enum
-CFLAGS=-O2
+CFLAGS=-O0 -ggdb3
# Additional flags that we will append to whatever the user set.
# These aren't intended for the user to manipulate.
diff --git a/notmuch-new.c b/notmuch-new.c
index bc35b4e..ef4429d 100644
--- a/notmuch-new.c
+++ b/notmuch-new.c
@@ -41,8 +41,22 @@ handle_sigint (unused (int sig))
static void
tag_inbox_and_unread (notmuch_message_t *message)
{
- notmuch_message_add_tag (message, "inbox");
+ char *buf;
+ int i;
+
+ buf = notmuch_message_get_flags (message);
+ for (i = 0; i < strlen (buf); i++) {
+ /* If the S flag is set the message can be tagged as read */
+ if (buf[i] == 'S') {
+ notmuch_message_add_tag (message, "read");
+ goto inbox;
+ }
+ }
+
notmuch_message_add_tag (message, "unread");
+
+inbox:
+ notmuch_message_add_tag (message, "inbox");
}
static void
--
1.6.5.3

View file

@ -0,0 +1,131 @@
Return-Path: <stefan@datenfreihafen.org>
X-Original-To: notmuch@notmuchmail.org
Delivered-To: notmuch@notmuchmail.org
Received: from localhost (localhost [127.0.0.1])
by olra.theworths.org (Postfix) with ESMTP id E4203431FBF
for <notmuch@notmuchmail.org>; Sat, 21 Nov 2009 16:11:31 -0800 (PST)
X-Virus-Scanned: Debian amavisd-new at olra.theworths.org
Received: from olra.theworths.org ([127.0.0.1])
by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id k6PahtnYXl0O for <notmuch@notmuchmail.org>;
Sat, 21 Nov 2009 16:11:30 -0800 (PST)
Received: from sirius.lasnet.de (sirius.lasnet.de [78.47.116.19])
by olra.theworths.org (Postfix) with ESMTP id 1BAB6431FBC
for <notmuch@notmuchmail.org>; Sat, 21 Nov 2009 16:11:30 -0800 (PST)
Received: from p5b034af6.dip.t-dialin.net ([91.3.74.246] helo=excalibur)
by sirius.lasnet.de with esmtpsa
(Cipher TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.63 #1)
id 1NC02v-0000t5-LF by authid <stefan@sostec.de> with cram_md5;
Sun, 22 Nov 2009 01:11:29 +0100
Received: from stefan by excalibur with local (Exim 4.69)
(envelope-from <stefan@excalibur.local>)
id 1NC02u-0001Dj-V9; Sun, 22 Nov 2009 01:11:16 +0100
From: Stefan Schmidt <stefan@datenfreihafen.org>
To: notmuch@notmuchmail.org
Date: Sun, 22 Nov 2009 01:11:00 +0100
Message-Id: <1258848661-4660-1-git-send-email-stefan@datenfreihafen.org>
X-Mailer: git-send-email 1.6.5.3
In-Reply-To: <yes>
References: <yes>
Subject: [notmuch] [PATCH 1/2] lib/message: Add function to get maildir
flags.
X-BeenThere: notmuch@notmuchmail.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "Use and development of the notmuch mail system."
<notmuch.notmuchmail.org>
List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,
<mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>
List-Archive: <http://notmuchmail.org/pipermail/notmuch>
List-Post: <mailto:notmuch@notmuchmail.org>
List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>
List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,
<mailto:notmuch-request@notmuchmail.org?subject=subscribe>
X-List-Received-Date: Sun, 22 Nov 2009 00:11:32 -0000
With notmuch_message_get_flags() we gain the information if the message was
flagged as read, draft, trashed, etc. Handy for big mail spooles that were used
with another mailer.
Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
---
lib/message.cc | 26 ++++++++++++++++++++++++++
lib/notmuch.h | 10 ++++++++++
2 files changed, 36 insertions(+), 0 deletions(-)
diff --git a/lib/message.cc b/lib/message.cc
index 069cedb..9bec61e 100644
--- a/lib/message.cc
+++ b/lib/message.cc
@@ -35,6 +35,7 @@ struct _notmuch_message {
char *thread_id;
char *in_reply_to;
char *filename;
+ char *flags;
notmuch_message_file_t *message_file;
notmuch_message_list_t *replies;
@@ -114,6 +115,7 @@ _notmuch_message_create (const void *talloc_owner,
message->thread_id = NULL;
message->in_reply_to = NULL;
message->filename = NULL;
+ message->flags = NULL;
message->message_file = NULL;
message->replies = _notmuch_message_list_create (message);
@@ -438,6 +440,30 @@ notmuch_message_get_filename (notmuch_message_t *message)
return message->filename;
}
+const char *
+notmuch_message_get_flags (notmuch_message_t *message)
+{
+ std::string filename_str, flags;
+ size_t position;
+ const char *db_path;
+
+ if (message->flags)
+ return message->flags;
+
+ filename_str = message->doc.get_data ();
+ db_path = notmuch_database_get_path (message->notmuch);
+
+ if (filename_str[0] != '/')
+ filename_str.insert (0, db_path);
+
+ /* Flags are everything behind ":" */
+ position = filename_str.find (":");
+ flags = filename_str.substr (position + 3); /* We don't want :2, */
+ message->flags = talloc_strdup (message, flags.c_str ());
+
+ return message->flags;
+}
+
time_t
notmuch_message_get_date (notmuch_message_t *message)
{
diff --git a/lib/notmuch.h b/lib/notmuch.h
index a61cd02..1da5dfd 100644
--- a/lib/notmuch.h
+++ b/lib/notmuch.h
@@ -694,6 +694,16 @@ notmuch_message_get_replies (notmuch_message_t *message);
const char *
notmuch_message_get_filename (notmuch_message_t *message);
+/* Get the maildir flags for the email corresponding to 'message'.
+ *
+ * The returned flags will be a string of ascii format flags.
+ *
+ * The returned string belongs to the message so should not be
+ * modified or freed by the caller (nor should it be referenced after
+ * the message is destroyed). */
+const char *
+notmuch_message_get_flags (notmuch_message_t *message);
+
/* Get the date of 'message' as a time_t value.
*
* For the original textual representation of the Date header from the
--
1.6.5.3

View file

@ -0,0 +1,85 @@
Return-Path: <keithp@keithp.com>
X-Original-To: notmuch@notmuchmail.org
Delivered-To: notmuch@notmuchmail.org
Received: from localhost (localhost [127.0.0.1])
by olra.theworths.org (Postfix) with ESMTP id 5656D431FBC
for <notmuch@notmuchmail.org>; Sat, 21 Nov 2009 16:28:35 -0800 (PST)
X-Virus-Scanned: Debian amavisd-new at olra.theworths.org
Received: from olra.theworths.org ([127.0.0.1])
by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id Dam69vzNZiE1 for <notmuch@notmuchmail.org>;
Sat, 21 Nov 2009 16:28:34 -0800 (PST)
Received: from keithp.com (home.keithp.com [63.227.221.253])
by olra.theworths.org (Postfix) with ESMTP id AA991431FAE
for <notmuch@notmuchmail.org>; Sat, 21 Nov 2009 16:28:34 -0800 (PST)
Received: from localhost (localhost [127.0.0.1])
by keithp.com (Postfix) with ESMTP id 18FC076012A;
Sat, 21 Nov 2009 16:28:34 -0800 (PST)
X-Virus-Scanned: Debian amavisd-new at keithp.com
Received: from keithp.com ([127.0.0.1])
by localhost (keithp.com [127.0.0.1]) (amavisd-new, port 10024)
with LMTP id tw1iDvWYNGRC; Sat, 21 Nov 2009 16:28:31 -0800 (PST)
Received: by keithp.com (Postfix, from userid 1033)
id 60F3176012B; Sat, 21 Nov 2009 16:28:31 -0800 (PST)
Received: from keithp.com (localhost [127.0.0.1])
by keithp.com (Postfix) with ESMTP id 5330D76012A;
Sat, 21 Nov 2009 16:28:31 -0800 (PST)
From: Keith Packard <keithp@keithp.com>
To: Stefan Schmidt <stefan@datenfreihafen.org>, notmuch@notmuchmail.org
In-Reply-To: <1258848661-4660-1-git-send-email-stefan@datenfreihafen.org>
References: <yes> <1258848661-4660-1-git-send-email-stefan@datenfreihafen.org>
Date: Sat, 21 Nov 2009 16:28:30 -0800
Message-ID: <yunvdh3pfm9.fsf@aiko.keithp.com>
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-=";
micalg=pgp-sha1; protocol="application/pgp-signature"
Subject: Re: [notmuch] [PATCH 1/2] lib/message: Add function to get maildir
flags.
X-BeenThere: notmuch@notmuchmail.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "Use and development of the notmuch mail system."
<notmuch.notmuchmail.org>
List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,
<mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>
List-Archive: <http://notmuchmail.org/pipermail/notmuch>
List-Post: <mailto:notmuch@notmuchmail.org>
List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>
List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,
<mailto:notmuch-request@notmuchmail.org?subject=subscribe>
X-List-Received-Date: Sun, 22 Nov 2009 00:28:35 -0000
--=-=-=
Content-Transfer-Encoding: quoted-printable
On Sun, 22 Nov 2009 01:11:00 +0100, Stefan Schmidt <stefan@datenfreihafen.o=
rg> wrote:
> +const char *
> +notmuch_message_get_flags (notmuch_message_t *message)
This function should interpret the flags that it finds and return a
suitable set of notmuch tags. I'd suggest that 'unread' messages get
both 'unread' and 'inbox' tags, as Maildir doesn't distinguish between
'don't show this to be by default again please' and 'I've read this
message'. It seems best to hide the maildir-specific details inside the
library instead of exposing them.
Also, we have only the 'unread' tag; we don't have a 'read' tag, which
would simply be the inverse of 'unread'.
=2D-=20
keith.packard@intel.com
--=-=-=
Content-Type: application/pgp-signature
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
iD8DBQFLCIWuQp8BWwlsTdMRAvcTAKDXHYc6MTuuZFMzHvZFs1omBbr9CACdEY/b
jqyT/QmmgoA/GtIcs/DfLMY=
=LVlh
-----END PGP SIGNATURE-----
--=-=-=--

View file

@ -0,0 +1,105 @@
Return-Path: <stefan@datenfreihafen.org>
X-Original-To: notmuch@notmuchmail.org
Delivered-To: notmuch@notmuchmail.org
Received: from localhost (localhost [127.0.0.1])
by olra.theworths.org (Postfix) with ESMTP id 912FF431FBF
for <notmuch@notmuchmail.org>; Sun, 22 Nov 2009 10:33:44 -0800 (PST)
X-Virus-Scanned: Debian amavisd-new at olra.theworths.org
Received: from olra.theworths.org ([127.0.0.1])
by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id 9T+Abdbhab0i for <notmuch@notmuchmail.org>;
Sun, 22 Nov 2009 10:33:43 -0800 (PST)
Received: from sirius.lasnet.de (sirius.lasnet.de [78.47.116.19])
by olra.theworths.org (Postfix) with ESMTP id 39D1C431FAE
for <notmuch@notmuchmail.org>; Sun, 22 Nov 2009 10:33:43 -0800 (PST)
Received: from p5b0353d3.dip.t-dialin.net ([91.3.83.211] helo=excalibur)
by sirius.lasnet.de with esmtpsa
(Cipher TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.63 #1)
id 1NCHFh-0000dR-It by authid <stefan@sostec.de> with cram_md5;
Sun, 22 Nov 2009 19:33:40 +0100
Received: from stefan by excalibur with local (Exim 4.69)
(envelope-from <stefan@excalibur.local>)
id 1NCHFi-0002ot-2C; Sun, 22 Nov 2009 19:33:38 +0100
Date: Sun, 22 Nov 2009 19:33:38 +0100
From: Stefan Schmidt <stefan@datenfreihafen.org>
To: Keith Packard <keithp@keithp.com>
Message-ID: <20091122183338.GB5735@excalibur.local>
References: <yes> <1258848661-4660-1-git-send-email-stefan@datenfreihafen.org>
<yunvdh3pfm9.fsf@aiko.keithp.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha1;
protocol="application/pgp-signature"; boundary="C7zPtVaVf+AK4Oqc"
Content-Disposition: inline
In-Reply-To: <yunvdh3pfm9.fsf@aiko.keithp.com>
X-Mailer: Mutt http://www.mutt.org/
X-KeyID: 0xDDF51665
X-Website: http://www.datenfreihafen.org/
User-Agent: Mutt/1.5.20 (2009-06-14)
Cc: notmuch@notmuchmail.org
Subject: Re: [notmuch] [PATCH 1/2] lib/message: Add function to get maildir
flags.
X-BeenThere: notmuch@notmuchmail.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "Use and development of the notmuch mail system."
<notmuch.notmuchmail.org>
List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,
<mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>
List-Archive: <http://notmuchmail.org/pipermail/notmuch>
List-Post: <mailto:notmuch@notmuchmail.org>
List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>
List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,
<mailto:notmuch-request@notmuchmail.org?subject=subscribe>
X-List-Received-Date: Sun, 22 Nov 2009 18:33:44 -0000
--C7zPtVaVf+AK4Oqc
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Hello.
On Sat, 2009-11-21 at 16:28, Keith Packard wrote:
> On Sun, 22 Nov 2009 01:11:00 +0100, Stefan Schmidt <stefan@datenfreihafen=
=2Eorg> wrote:
>=20
> > +const char *
> > +notmuch_message_get_flags (notmuch_message_t *message)
>=20
> This function should interpret the flags that it finds and return a
> suitable set of notmuch tags. I'd suggest that 'unread' messages get
> both 'unread' and 'inbox' tags, as Maildir doesn't distinguish between
> 'don't show this to be by default again please' and 'I've read this
> message'. It seems best to hide the maildir-specific details inside the
> library instead of exposing them.
Thanks for the review. On a second thought the interface was really a bit u=
gly.
:)
I'm just back to my box and going through the outstanding mails shows me th=
at
Michiel Buddingh has a more complete patch on the
convert-maildir-flags-into-tags issue which Carl has tagged for review. Will
wait what comes out of it and if anything is left for me to. :)
regards
Stefan Schmidt
--C7zPtVaVf+AK4Oqc
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature
Content-Disposition: inline
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: http://www.datenfreihafen.org/contact.html
iEYEARECAAYFAksJhAIACgkQbNSsvd31FmWDDgCgswbE3BE2XeExPzBBJf86efDw
aFwAoMc3vaBmTjB2kG5ORUmk1E/ICBXK
=k8v5
-----END PGP SIGNATURE-----
--C7zPtVaVf+AK4Oqc--

View file

@ -0,0 +1,71 @@
Return-Path: <michiel@michielbuddingh.net>
X-Original-To: notmuch@notmuchmail.org
Delivered-To: notmuch@notmuchmail.org
Received: from localhost (localhost [127.0.0.1])
by olra.theworths.org (Postfix) with ESMTP id B580E431FBC
for <notmuch@notmuchmail.org>; Sun, 22 Nov 2009 10:55:27 -0800 (PST)
X-Virus-Scanned: Debian amavisd-new at olra.theworths.org
Received: from olra.theworths.org ([127.0.0.1])
by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id JHZeV0d6+Q8a for <notmuch@notmuchmail.org>;
Sun, 22 Nov 2009 10:55:26 -0800 (PST)
Received: from aegir.org.uk (aegir.org.uk [87.238.170.13])
by olra.theworths.org (Postfix) with ESMTP id C6AAC431FAE
for <notmuch@notmuchmail.org>; Sun, 22 Nov 2009 10:55:26 -0800 (PST)
Received: from localhost.localdomain (109-9-ftth.onsnetstudenten.nl
[145.120.9.109])
(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
(No client certificate requested)
by aegir.org.uk (Postfix) with ESMTPSA id 48CE72E02A;
Sun, 22 Nov 2009 19:55:26 +0100 (CET)
Date: Sun, 22 Nov 2009 19:55:26 +0100
From: Michiel Buddingh' <michiel@michielbuddingh.net>
To: notmuch@notmuchmail.org, stefan@datenfreihafen.org,
keithp@keithp.com
Message-ID: <4b09891e.YhJ/aJZOBwneOaFr%michiel@michielbuddingh.net>
References: <yes> <1258848661-4660-1-git-send-email-stefan@datenfreihafen.org>
<yunvdh3pfm9.fsf@aiko.keithp.com>
<20091122183338.GB5735@excalibur.local>
In-Reply-To: <20091122183338.GB5735@excalibur.local>
User-Agent: Heirloom mailx 12.4 7/29/08
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Subject: Re: [notmuch] [PATCH 1/2] lib/message: Add function to get maildir
flags.
X-BeenThere: notmuch@notmuchmail.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "Use and development of the notmuch mail system."
<notmuch.notmuchmail.org>
List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,
<mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>
List-Archive: <http://notmuchmail.org/pipermail/notmuch>
List-Post: <mailto:notmuch@notmuchmail.org>
List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>
List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,
<mailto:notmuch-request@notmuchmail.org?subject=subscribe>
X-List-Received-Date: Sun, 22 Nov 2009 18:55:27 -0000
Stefan Schmidt <stefan@datenfreihafen.org> wrote:
> > This function should interpret the flags that it finds and return a
> > suitable set of notmuch tags. I'd suggest that 'unread' messages get
> > both 'unread' and 'inbox' tags, as Maildir doesn't distinguish between
> > 'don't show this to be by default again please' and 'I've read this
> > message'. It seems best to hide the maildir-specific details inside the
> > library instead of exposing them.
>
> Thanks for the review. On a second thought the interface was really a bit ugly.
> :)
>
> I'm just back to my box and going through the outstanding mails shows me that
> Michiel Buddingh has a more complete patch on the
> convert-maildir-flags-into-tags issue which Carl has tagged for review. Will
> wait what comes out of it and if anything is left for me to. :)
Apologies. In my haste to cover up my appalling and incorrect first patch, I
neglected to review the archives to see if someone had already done this. Sorry
for stealing your thunder.
Michiel

View file

@ -0,0 +1,86 @@
Return-Path: <stefan@datenfreihafen.org>
X-Original-To: notmuch@notmuchmail.org
Delivered-To: notmuch@notmuchmail.org
Received: from localhost (localhost [127.0.0.1])
by olra.theworths.org (Postfix) with ESMTP id B2DE3431FBC
for <notmuch@notmuchmail.org>; Sun, 22 Nov 2009 11:52:54 -0800 (PST)
X-Virus-Scanned: Debian amavisd-new at olra.theworths.org
Received: from olra.theworths.org ([127.0.0.1])
by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id TrLH7uZhkvFU for <notmuch@notmuchmail.org>;
Sun, 22 Nov 2009 11:52:53 -0800 (PST)
Received: from sirius.lasnet.de (sirius.lasnet.de [78.47.116.19])
by olra.theworths.org (Postfix) with ESMTP id 7024B431FAE
for <notmuch@notmuchmail.org>; Sun, 22 Nov 2009 11:52:53 -0800 (PST)
Received: from p5b0353d3.dip.t-dialin.net ([91.3.83.211] helo=excalibur)
by sirius.lasnet.de with esmtpsa
(Cipher TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.63 #1)
id 1NCIUJ-0002QO-OM by authid <stefan@sostec.de> with cram_md5;
Sun, 22 Nov 2009 20:52:50 +0100
Received: from stefan by excalibur with local (Exim 4.69)
(envelope-from <stefan@excalibur.local>)
id 1NCIUI-0003ON-Sr; Sun, 22 Nov 2009 20:52:46 +0100
Date: Sun, 22 Nov 2009 20:52:46 +0100
From: Stefan Schmidt <stefan@datenfreihafen.org>
To: Michiel Buddingh' <michiel@michielbuddingh.net>
Message-ID: <20091122195246.GC5735@excalibur.local>
References: <yes> <1258848661-4660-1-git-send-email-stefan@datenfreihafen.org>
<yunvdh3pfm9.fsf@aiko.keithp.com>
<20091122183338.GB5735@excalibur.local>
<4b09891e.YhJ/aJZOBwneOaFr%michiel@michielbuddingh.net>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <4b09891e.YhJ/aJZOBwneOaFr%michiel@michielbuddingh.net>
X-Mailer: Mutt http://www.mutt.org/
X-KeyID: 0xDDF51665
X-Website: http://www.datenfreihafen.org/
User-Agent: Mutt/1.5.20 (2009-06-14)
Cc: notmuch@notmuchmail.org
Subject: Re: [notmuch] [PATCH 1/2] lib/message: Add function to get maildir
flags.
X-BeenThere: notmuch@notmuchmail.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "Use and development of the notmuch mail system."
<notmuch.notmuchmail.org>
List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,
<mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>
List-Archive: <http://notmuchmail.org/pipermail/notmuch>
List-Post: <mailto:notmuch@notmuchmail.org>
List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>
List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,
<mailto:notmuch-request@notmuchmail.org?subject=subscribe>
X-List-Received-Date: Sun, 22 Nov 2009 19:52:54 -0000
Hello.
On Sun, 2009-11-22 at 19:55, Michiel Buddingh' wrote:
> Stefan Schmidt <stefan@datenfreihafen.org> wrote:
> > > This function should interpret the flags that it finds and return a
> > > suitable set of notmuch tags. I'd suggest that 'unread' messages get
> > > both 'unread' and 'inbox' tags, as Maildir doesn't distinguish between
> > > 'don't show this to be by default again please' and 'I've read this
> > > message'. It seems best to hide the maildir-specific details inside the
> > > library instead of exposing them.
> >
> > Thanks for the review. On a second thought the interface was really a bit ugly.
> > :)
> >
> > I'm just back to my box and going through the outstanding mails shows me that
> > Michiel Buddingh has a more complete patch on the
> > convert-maildir-flags-into-tags issue which Carl has tagged for review. Will
> > wait what comes out of it and if anything is left for me to. :)
>
> Apologies. In my haste to cover up my appalling and incorrect first patch, I
> neglected to review the archives to see if someone had already done this. Sorry
> for stealing your thunder.
No need to be sorry. I'm interestecd in having this itch scratched, but don't
care who is doing it. :)
Just go ahead and get it in after Carl's review.
regards
Stefan Schmidt

View file

@ -0,0 +1,81 @@
Return-Path: <ingmar@exherbo.org>
X-Original-To: notmuch@notmuchmail.org
Delivered-To: notmuch@notmuchmail.org
Received: from localhost (localhost [127.0.0.1])
by olra.theworths.org (Postfix) with ESMTP id BAA52431FBC
for <notmuch@notmuchmail.org>; Thu, 26 Nov 2009 00:43:44 -0800 (PST)
X-Virus-Scanned: Debian amavisd-new at olra.theworths.org
Received: from olra.theworths.org ([127.0.0.1])
by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id 0U+OLchDCS5T for <notmuch@notmuchmail.org>;
Thu, 26 Nov 2009 00:43:44 -0800 (PST)
Received: from bach.exherbo.org (bach.exherbo.org [78.47.197.147])
by olra.theworths.org (Postfix) with ESMTP id 05223431FAE
for <notmuch@notmuchmail.org>; Thu, 26 Nov 2009 00:43:43 -0800 (PST)
Received: from [83.101.72.69] (helo=localhost)
by bach.exherbo.org with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.69)
(envelope-from <ingmar@exherbo.org>) id 1NDZx1-0000VV-3u
for notmuch@notmuchmail.org; Thu, 26 Nov 2009 08:43:43 +0000
Content-Type: text/plain; charset=utf8
From: Ingmar Vanhassel <ingmar@exherbo.org>
To: notmuch <notmuch@notmuchmail.org>
In-reply-to: <1259223435-29656-1-git-send-email-stefan@datenfreihafen.org>
References: <yes> <1259223435-29656-1-git-send-email-stefan@datenfreihafen.org>
Date: Thu, 26 Nov 2009 09:43:42 +0100
Message-Id: <1259224970-sup-5259@cannonball>
User-Agent: Sup/git
Content-Transfer-Encoding: 8bit
Subject: Re: [notmuch] [PATCH] Makefile: Enable backslash escapes for echo.
X-BeenThere: notmuch@notmuchmail.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "Use and development of the notmuch mail system."
<notmuch.notmuchmail.org>
List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,
<mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>
List-Archive: <http://notmuchmail.org/pipermail/notmuch>
List-Post: <mailto:notmuch@notmuchmail.org>
List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>
List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,
<mailto:notmuch-request@notmuchmail.org?subject=subscribe>
X-List-Received-Date: Thu, 26 Nov 2009 08:43:44 -0000
Excerpts from Stefan Schmidt's message of Thu Nov 26 09:17:15 +0100 2009:
> This fixes a visual glitch during a silent compile.
> Before:
> Use "make V=1" to see the verbose compile lines.\n CC debugger.o
> CC gmime-filter-reply.o
>
> After:
> Use "make V=1" to see the verbose compile lines.
> CC debugger.o
> CC gmime-filter-reply.o
>
> Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
Looks right, works here with bash, dash & zsh, so:
Reviewed-by: Ingmar Vanhassel <ingmar@exherbo.org>
Thanks!
> ---
> Makefile | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 2cd1b1b..2d19a6e 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -41,7 +41,7 @@ include Makefile.config
> # user how to enable verbose compiles.
> ifeq ($(V),)
> quiet_DOC := "Use \"$(MAKE) V=1\" to see the verbose compile lines.\n"
> -quiet = @echo $(quiet_DOC)$(eval quiet_DOC:=)" $1 $@"; $($1)
> +quiet = @echo -e $(quiet_DOC)$(eval quiet_DOC:=)" $1 $@"; $($1)
> endif
> # The user has explicitly enabled quiet compilation.
> ifeq ($(V),0)
--
Exherbo KDE, X.org maintainer

View file

@ -0,0 +1,64 @@
Return-Path: <kha@treskal.com>
X-Original-To: notmuch@notmuchmail.org
Delivered-To: notmuch@notmuchmail.org
Received: from localhost (localhost [127.0.0.1])
by olra.theworths.org (Postfix) with ESMTP id 54307431FBC
for <notmuch@notmuchmail.org>; Thu, 26 Nov 2009 03:41:18 -0800 (PST)
X-Virus-Scanned: Debian amavisd-new at olra.theworths.org
Received: from olra.theworths.org ([127.0.0.1])
by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id TBdvxm5kBScu for <notmuch@notmuchmail.org>;
Thu, 26 Nov 2009 03:41:13 -0800 (PST)
Received: from mail1.space2u.com (mail1.space2u.com [62.20.1.135])
by olra.theworths.org (Postfix) with ESMTP id 80538431FAE
for <notmuch@notmuchmail.org>; Thu, 26 Nov 2009 03:41:13 -0800 (PST)
Received: from mail-bw0-f224.google.com (mail-bw0-f224.google.com
[209.85.218.224]) (authenticated bits=0)
by mail1.space2u.com (8.14.3/8.14.3) with ESMTP id nAQBf0Ar018995
(version=TLSv1/SSLv3 cipher=DES-CBC3-SHA bits=168 verify=NOT)
for <notmuch@notmuchmail.org>; Thu, 26 Nov 2009 12:41:01 +0100
Received: by bwz24 with SMTP id 24so480173bwz.30
for <notmuch@notmuchmail.org>; Thu, 26 Nov 2009 03:41:11 -0800 (PST)
MIME-Version: 1.0
Received: by 10.204.153.3 with SMTP id i3mr2263267bkw.26.1259235670122; Thu,
26 Nov 2009 03:41:10 -0800 (PST)
In-Reply-To: <20091126110505.GI25119@ryngle.com>
References: <1259223435-29656-1-git-send-email-stefan@datenfreihafen.org>
<20091126110505.GI25119@ryngle.com>
Date: Thu, 26 Nov 2009 12:41:10 +0100
Message-ID: <b8197bcb0911260341o480edc2bof8a30f0b724dd96@mail.gmail.com>
From: Karl Wiberg <kha@treskal.com>
To: Jan Janak <jan@ryngle.com>
Content-Type: text/plain; charset=UTF-8
Cc: notmuch@notmuchmail.org
Subject: Re: [notmuch] [PATCH] Makefile: Enable backslash escapes for echo.
X-BeenThere: notmuch@notmuchmail.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "Use and development of the notmuch mail system."
<notmuch.notmuchmail.org>
List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,
<mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>
List-Archive: <http://notmuchmail.org/pipermail/notmuch>
List-Post: <mailto:notmuch@notmuchmail.org>
List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>
List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,
<mailto:notmuch-request@notmuchmail.org?subject=subscribe>
X-List-Received-Date: Thu, 26 Nov 2009 11:41:18 -0000
On Thu, Nov 26, 2009 at 12:05 PM, Jan Janak <jan@ryngle.com> wrote:
> I sent exactly the same patch a couple of days ago and it was
> rejected because it does not work everywhere, see:
>
> http://notmuchmail.org/pipermail/notmuch/2009/000370.html
And as I said in that thread, I believe you should use printf instead.
(http://www.in-ulm.de/~mascheck/various/echo+printf/ seems like a good
reference in this matter.)
--
Karl Wiberg, kha@treskal.com
subrabbit.wordpress.com
www.treskal.com/kalle

View file

@ -0,0 +1,104 @@
From: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
Subject: [RFC][PATCH 10/10] cifs: add mount option to enable local caching
Date: Tue, 22 Jun 2010 20:55:09 +0530
Lines: 66
Message-ID: <1277220309-3757-1-git-send-email-sjayaraman@suse.de>
References: <yes>
Cc: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Tue Jun 22 17:25:29 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1OR5Ls-0004PS-BM
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Tue, 22 Jun 2010 17:25:28 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1755015Ab0FVPZ1 (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Tue, 22 Jun 2010 11:25:27 -0400
Received: from victor.provo.novell.com ([137.65.250.26]:48639 "EHLO
victor.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1754070Ab0FVPZ1 (ORCPT
<rfc822;groupwise-SJayaraman-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org:0:0>);
Tue, 22 Jun 2010 11:25:27 -0400
X-Greylist: delayed 316 seconds by postgrey-1.27 at vger.kernel.org; Tue, 22 Jun 2010 11:25:26 EDT
Received: from localhost (prv-ext-foundry1int.gns.novell.com [137.65.251.240])
by victor.provo.novell.com with ESMTP; Tue, 22 Jun 2010 09:25:11 -0600
X-Mailer: git-send-email 1.6.4.2
In-Reply-To: <yes>
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1001750>
Add a mount option 'fsc' to enable local caching on CIFS.
As the cifs-utils (userspace) changes are not done yet, this patch enables
'fsc' by default to assist testing.
Signed-off-by: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
---
fs/cifs/cifs_fs_sb.h | 1 +
fs/cifs/connect.c | 8 ++++++++
2 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/fs/cifs/cifs_fs_sb.h b/fs/cifs/cifs_fs_sb.h
index 246a167..9e77145 100644
--- a/fs/cifs/cifs_fs_sb.h
+++ b/fs/cifs/cifs_fs_sb.h
@@ -35,6 +35,7 @@
#define CIFS_MOUNT_DYNPERM 0x1000 /* allow in-memory only mode setting */
#define CIFS_MOUNT_NOPOSIXBRL 0x2000 /* mandatory not posix byte range lock */
#define CIFS_MOUNT_NOSSYNC 0x4000 /* don't do slow SMBflush on every sync*/
+#define CIFS_MOUNT_FSCACHE 0x8000 /* local caching enabled */
struct cifs_sb_info {
struct cifsTconInfo *tcon; /* primary mount */
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index 4844dbd..6c6ff3c 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -98,6 +98,7 @@ struct smb_vol {
bool noblocksnd:1;
bool noautotune:1;
bool nostrictsync:1; /* do not force expensive SMBflush on every sync */
+ bool fsc:1; /* enable fscache */
unsigned int rsize;
unsigned int wsize;
bool sockopt_tcp_nodelay:1;
@@ -843,6 +844,9 @@ cifs_parse_mount_options(char *options, const char *devname,
/* default to using server inode numbers where available */
vol->server_ino = 1;
+ /* XXX: default to fsc for testing until mount.cifs pieces are done */
+ vol->fsc = 1;
+
if (!options)
return 1;
@@ -1332,6 +1336,8 @@ cifs_parse_mount_options(char *options, const char *devname,
printk(KERN_WARNING "CIFS: Mount option noac not "
"supported. Instead set "
"/proc/fs/cifs/LookupCacheEnabled to 0\n");
+ } else if (strnicmp(data, "fsc", 3) == 0) {
+ vol->fsc = true;
} else
printk(KERN_WARNING "CIFS: Unknown mount option %s\n",
data);
@@ -2405,6 +2411,8 @@ static void setup_cifs_sb(struct smb_vol *pvolume_info,
cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_OVERR_GID;
if (pvolume_info->dynperm)
cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_DYNPERM;
+ if (pvolume_info->fsc)
+ cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_FSCACHE;
if (pvolume_info->direct_io) {
cFYI(1, "mounting share using direct i/o");
cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_DIRECT_IO;
--
1.6.4.2

View file

@ -0,0 +1,103 @@
From: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
Subject: [RFC][PATCH 00/10] cifs: local caching support using FS-Cache
Date: Tue, 22 Jun 2010 20:50:05 +0530
Lines: 66
Message-ID: <1277220005-3322-1-git-send-email-sjayaraman@suse.de>
References: <yes>
Cc: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Tue Jun 22 17:40:38 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1OR5aY-00055O-BD
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Tue, 22 Jun 2010 17:40:38 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1751889Ab0FVPkf (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Tue, 22 Jun 2010 11:40:35 -0400
Received: from victor.provo.novell.com ([137.65.250.26]:50040 "EHLO
victor.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1751554Ab0FVPkf (ORCPT
<rfc822;groupwise-SJayaraman-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org:0:0>);
Tue, 22 Jun 2010 11:40:35 -0400
Received: from localhost (prv-ext-foundry1int.gns.novell.com [137.65.251.240])
by victor.provo.novell.com with ESMTP; Tue, 22 Jun 2010 09:20:07 -0600
X-Mailer: git-send-email 1.6.4.2
In-Reply-To: <yes>
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1001756>
This patchset is a first stab at adding persistent, local caching facility for
CIFS using the FS-Cache interface.
The index hierarchy which is mainly used to locate a file object or discard
a certain subset of the files cached, currently has three levels:
- Server
- Share
- File
The server index object is keyed by hostname of the server. The superblock
index object is keyed by the sharename and the inode object is keyed by the
UniqueId. The cache coherency is ensured by checking the 'LastWriteTime' and
size of file.
To use this, apply this patchset in order, mount the share with rsize=4096 and
try copying a huge file (say few hundred MBs) from mount point to local
filesystem. During the first time, the cache will be initialized. When you copy
the second time, it should read from the local cache.
To reduce the impact of page cache and see the local caching in action
readily, try doing a sync and drop the caches by doing:
sync; echo 3 > /proc/sys/vm/drop_caches
Known issues
-------------
- the cache coherency check may not be reliable always as some
CIFS servers are known not to update mtime until the filehandle is
closed.
- not all the Servers under all circumstances provide a unique
'UniqueId'.
Todo's
-------
- improvements to avoid potential key collisions
- address the above known issues
This set is lightly tested and all the bugs seen during my testing have been
fixed. However, this can be considered as an RFC for now.
Any Comments or Suggestions are welcome.
Suresh Jayaraman (10)
cifs: add kernel config option for CIFS Client caching support
cifs: guard cifsglob.h against multiple inclusion
cifs: register CIFS for caching
cifs: define server-level cache index objects and register them with FS-Cache
cifs: define superblock-level cache index objects and register them
cifs: define inode-level cache object and register them
cifs: FS-Cache page management
cifs: store pages into local cache
cifs: read pages from FS-Cache
cifs: add mount option to enable local caching
Kconfig | 9 ++
Makefile | 2
cache.c | 251 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
cifs_fs_sb.h | 1
cifsfs.c | 15 +++
cifsglob.h | 14 +++
connect.c | 16 +++
file.c | 51 +++++++++++
fscache.c | 244 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
fscache.h | 135 +++++++++++++++++++++++++++++++
inode.c | 4
11 files changed, 742 insertions(+)

View file

@ -0,0 +1,67 @@
From: Suresh Jayaraman <sjayaraman@suse.de>
Subject: [RFC][PATCH 01/10] cifs: add kernel config option for CIFS Client caching support
Date: Tue, 22 Jun 2010 20:52:38 +0530
Lines: 30
Message-ID: <1277220158-3405-1-git-send-email-sjayaraman@suse.de>
References: <yes>
Cc: linux-cifs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org, David Howells <dhowells@redhat.com>
To: Steve French <smfrench@gmail.com>
X-From: linux-kernel-owner@vger.kernel.org Tue Jun 22 17:43:27 2010
Return-path: <linux-kernel-owner@vger.kernel.org>
Envelope-to: glk-linux-kernel-3@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-kernel-owner@vger.kernel.org>)
id 1OR5dG-0007m9-Ij
for glk-linux-kernel-3@lo.gmane.org; Tue, 22 Jun 2010 17:43:26 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1751536Ab0FVPnS (ORCPT <rfc822;glk-linux-kernel-3@m.gmane.org>);
Tue, 22 Jun 2010 11:43:18 -0400
Received: from victor.provo.novell.com ([137.65.250.26]:51303 "EHLO
victor.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1750800Ab0FVPnR (ORCPT
<rfc822;groupwise-SJayaraman@novell.com:0:0>);
Tue, 22 Jun 2010 11:43:17 -0400
Received: from localhost (prv-ext-foundry1int.gns.novell.com [137.65.251.240])
by victor.provo.novell.com with ESMTP; Tue, 22 Jun 2010 09:22:40 -0600
X-Mailer: git-send-email 1.6.4.2
In-Reply-To: <yes>
Sender: linux-kernel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-kernel.vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1001757>
Add a kernel config option to enable local caching for CIFS.
Signed-off-by: Suresh Jayaraman <sjayaraman@suse.de>
---
fs/cifs/Kconfig | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/fs/cifs/Kconfig b/fs/cifs/Kconfig
index 80f3525..5739fd7 100644
--- a/fs/cifs/Kconfig
+++ b/fs/cifs/Kconfig
@@ -131,6 +131,15 @@ config CIFS_DFS_UPCALL
IP addresses) which is needed for implicit mounts of DFS junction
points. If unsure, say N.
+config CIFS_FSCACHE
+ bool "Provide CIFS client caching support (EXPERIMENTAL)"
+ depends on EXPERIMENTAL
+ depends on CIFS=m && FSCACHE || CIFS=y && FSCACHE=y
+ help
+ Makes CIFS FS-Cache capable. Say Y here if you want your CIFS data
+ to be cached locally on disk through the general filesystem cache
+ manager. If unsure, say N.
+
config CIFS_EXPERIMENTAL
bool "CIFS Experimental Features (EXPERIMENTAL)"
depends on CIFS && EXPERIMENTAL
--
1.6.4.2

View file

@ -0,0 +1,73 @@
From: Suresh Jayaraman <sjayaraman@suse.de>
Subject: [RFC][PATCH 02/10] cifs: guard cifsglob.h against multiple inclusion
Date: Tue, 22 Jun 2010 20:52:50 +0530
Lines: 36
Message-ID: <1277220170-3442-1-git-send-email-sjayaraman@suse.de>
References: <yes>
Cc: linux-cifs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org, David Howells <dhowells@redhat.com>
To: Steve French <smfrench@gmail.com>
X-From: linux-fsdevel-owner@vger.kernel.org Tue Jun 22 17:43:39 2010
Return-path: <linux-fsdevel-owner@vger.kernel.org>
Envelope-to: lnx-linux-fsdevel@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-fsdevel-owner@vger.kernel.org>)
id 1OR5dT-0007sB-18
for lnx-linux-fsdevel@lo.gmane.org; Tue, 22 Jun 2010 17:43:39 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1752441Ab0FVPn3 (ORCPT <rfc822;lnx-linux-fsdevel@m.gmane.org>);
Tue, 22 Jun 2010 11:43:29 -0400
Received: from victor.provo.novell.com ([137.65.250.26]:41538 "EHLO
victor.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1751889Ab0FVPn2 (ORCPT
<rfc822;groupwise-SJayaraman@novell.com:0:0>);
Tue, 22 Jun 2010 11:43:28 -0400
Received: from localhost (prv-ext-foundry1int.gns.novell.com [137.65.251.240])
by victor.provo.novell.com with ESMTP; Tue, 22 Jun 2010 09:22:52 -0600
X-Mailer: git-send-email 1.6.4.2
In-Reply-To: <yes>
Sender: linux-fsdevel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-fsdevel.vger.kernel.org>
X-Mailing-List: linux-fsdevel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1001758>
Add conditional compile macros to guard the header file against multiple
inclusion.
Signed-off-by: Suresh Jayaraman <sjayaraman@suse.de>
---
fs/cifs/cifsglob.h | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
index a88479c..6b2c39d 100644
--- a/fs/cifs/cifsglob.h
+++ b/fs/cifs/cifsglob.h
@@ -16,6 +16,9 @@
* the GNU Lesser General Public License for more details.
*
*/
+#ifndef _CIFS_GLOB_H
+#define _CIFS_GLOB_H
+
#include <linux/in.h>
#include <linux/in6.h>
#include <linux/slab.h>
@@ -733,3 +736,5 @@ GLOBAL_EXTERN unsigned int cifs_min_small; /* min size of small buf pool */
GLOBAL_EXTERN unsigned int cifs_max_pending; /* MAX requests at once to server*/
extern const struct slow_work_ops cifs_oplock_break_ops;
+
+#endif /* _CIFS_GLOB_H */
--
1.6.4.2
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

View file

@ -0,0 +1,211 @@
From: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
Subject: [RFC][PATCH 03/10] cifs: register CIFS for caching
Date: Tue, 22 Jun 2010 20:53:09 +0530
Lines: 174
Message-ID: <1277220189-3485-1-git-send-email-sjayaraman@suse.de>
References: <yes>
Cc: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Tue Jun 22 17:43:52 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1OR5de-0007xC-Ov
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Tue, 22 Jun 2010 17:43:51 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1753125Ab0FVPnt (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Tue, 22 Jun 2010 11:43:49 -0400
Received: from victor.provo.novell.com ([137.65.250.26]:55866 "EHLO
victor.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1751261Ab0FVPnt (ORCPT
<rfc822;groupwise-SJayaraman-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org:0:0>);
Tue, 22 Jun 2010 11:43:49 -0400
Received: from localhost (prv-ext-foundry1int.gns.novell.com [137.65.251.240])
by victor.provo.novell.com with ESMTP; Tue, 22 Jun 2010 09:23:11 -0600
X-Mailer: git-send-email 1.6.4.2
In-Reply-To: <yes>
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1001759>
Define CIFS for FS-Cache and register for caching. Upon registration the
top-level index object cookie will be stuck to the netfs definition by
FS-Cache.
Signed-off-by: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
---
fs/cifs/Makefile | 2 ++
fs/cifs/cache.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
fs/cifs/cifsfs.c | 8 ++++++++
fs/cifs/fscache.h | 40 ++++++++++++++++++++++++++++++++++++++++
4 files changed, 103 insertions(+), 0 deletions(-)
create mode 100644 fs/cifs/cache.c
create mode 100644 fs/cifs/fscache.h
diff --git a/fs/cifs/Makefile b/fs/cifs/Makefile
index 9948c00..e2de709 100644
--- a/fs/cifs/Makefile
+++ b/fs/cifs/Makefile
@@ -11,3 +11,5 @@ cifs-y := cifsfs.o cifssmb.o cifs_debug.o connect.o dir.o file.o inode.o \
cifs-$(CONFIG_CIFS_UPCALL) += cifs_spnego.o
cifs-$(CONFIG_CIFS_DFS_UPCALL) += dns_resolve.o cifs_dfs_ref.o
+
+cifs-$(CONFIG_CIFS_FSCACHE) += cache.o
diff --git a/fs/cifs/cache.c b/fs/cifs/cache.c
new file mode 100644
index 0000000..1080b96
--- /dev/null
+++ b/fs/cifs/cache.c
@@ -0,0 +1,53 @@
+/*
+ * fs/cifs/cache.c - CIFS filesystem cache index structure definitions
+ *
+ * Copyright (c) 2010 Novell, Inc.
+ * Authors(s): Suresh Jayaraman (sjayaraman-l3A5Bk7waGM@public.gmane.org>
+ *
+ * This library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
+ * the GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/sched.h>
+#include <linux/mm.h>
+
+#include "fscache.h"
+#include "cifsglob.h"
+#include "cifs_debug.h"
+
+/*
+ * CIFS filesystem definition for FS-Cache
+ */
+struct fscache_netfs cifs_fscache_netfs = {
+ .name = "cifs",
+ .version = 0,
+};
+
+/*
+ * Register CIFS for caching with FS-Cache
+ */
+int cifs_fscache_register(void)
+{
+ return fscache_register_netfs(&cifs_fscache_netfs);
+}
+
+/*
+ * Unregister CIFS for caching
+ */
+void cifs_fscache_unregister(void)
+{
+ fscache_unregister_netfs(&cifs_fscache_netfs);
+}
+
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
index 484e52b..c2a7aa9 100644
--- a/fs/cifs/cifsfs.c
+++ b/fs/cifs/cifsfs.c
@@ -47,6 +47,7 @@
#include <linux/key-type.h>
#include "dns_resolve.h"
#include "cifs_spnego.h"
+#include "fscache.h"
#define CIFS_MAGIC_NUMBER 0xFF534D42 /* the first four bytes of SMB PDUs */
int cifsFYI = 0;
@@ -902,6 +903,10 @@ init_cifs(void)
cFYI(1, "cifs_max_pending set to max of 256");
}
+ rc = cifs_fscache_register();
+ if (rc)
+ goto out;
+
rc = cifs_init_inodecache();
if (rc)
goto out_clean_proc;
@@ -949,8 +954,10 @@ init_cifs(void)
cifs_destroy_mids();
out_destroy_inodecache:
cifs_destroy_inodecache();
+ cifs_fscache_unregister();
out_clean_proc:
cifs_proc_clean();
+ out:
return rc;
}
@@ -959,6 +966,7 @@ exit_cifs(void)
{
cFYI(DBG2, "exit_cifs");
cifs_proc_clean();
+ cifs_fscache_unregister();
#ifdef CONFIG_CIFS_DFS_UPCALL
cifs_dfs_release_automount_timer();
unregister_key_type(&key_type_dns_resolver);
diff --git a/fs/cifs/fscache.h b/fs/cifs/fscache.h
new file mode 100644
index 0000000..cec9e2b
--- /dev/null
+++ b/fs/cifs/fscache.h
@@ -0,0 +1,40 @@
+/*
+ * fs/cifs/fscache.h - CIFS filesystem cache interface definitions
+ *
+ * Copyright (c) 2010 Novell, Inc.
+ * Authors(s): Suresh Jayaraman (sjayaraman-l3A5Bk7waGM@public.gmane.org>
+ *
+ * This library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
+ * the GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#ifndef _CIFS_FSCACHE_H
+#define _CIFS_FSCACHE_H
+
+#include <linux/fscache.h>
+#include "cifsglob.h"
+
+#ifdef CONFIG_CIFS_FSCACHE
+
+extern struct fscache_netfs cifs_fscache_netfs;
+
+extern int cifs_fscache_register(void);
+extern void cifs_fscache_unregister(void);
+
+#else /* CONFIG_CIFS_FSCACHE */
+static inline int cifs_fscache_register(void) { return 0; }
+static inline void cifs_fscache_unregister(void) {}
+
+#endif /* CONFIG_CIFS_FSCACHE */
+
+#endif /* _CIFS_FSCACHE_H */
--
1.6.4.2

View file

@ -0,0 +1,223 @@
From: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
Subject: [RFC][PATCH 04/10] cifs: define server-level cache index objects and register them with FS-Cache
Date: Tue, 22 Jun 2010 20:53:18 +0530
Lines: 186
Message-ID: <1277220198-3522-1-git-send-email-sjayaraman@suse.de>
References: <yes>
Cc: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Tue Jun 22 17:44:26 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1OR5eD-0008G7-KP
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Tue, 22 Jun 2010 17:44:26 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1753942Ab0FVPoC (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Tue, 22 Jun 2010 11:44:02 -0400
Received: from victor.provo.novell.com ([137.65.250.26]:58783 "EHLO
victor.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1751265Ab0FVPoA (ORCPT
<rfc822;groupwise-SJayaraman-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org:0:0>);
Tue, 22 Jun 2010 11:44:00 -0400
Received: from localhost (prv-ext-foundry1int.gns.novell.com [137.65.251.240])
by victor.provo.novell.com with ESMTP; Tue, 22 Jun 2010 09:23:20 -0600
X-Mailer: git-send-email 1.6.4.2
In-Reply-To: <yes>
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1001760>
Define server-level cache index objects (as managed by TCP_ServerInfo structs).
Each server object is created in the CIFS top-level index object and is itself
an index into which superblock-level objects are inserted.
Currently, the server objects are keyed by hostname.
Signed-off-by: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
---
fs/cifs/Makefile | 2 +-
fs/cifs/cache.c | 25 +++++++++++++++++++++++++
fs/cifs/cifsglob.h | 3 +++
fs/cifs/connect.c | 4 ++++
fs/cifs/fscache.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++
fs/cifs/fscache.h | 12 ++++++++++++
6 files changed, 92 insertions(+), 1 deletion(-)
create mode 100644 fs/cifs/fscache.c
Index: cifs-2.6/fs/cifs/Makefile
===================================================================
--- cifs-2.6.orig/fs/cifs/Makefile
+++ cifs-2.6/fs/cifs/Makefile
@@ -12,4 +12,4 @@ cifs-$(CONFIG_CIFS_UPCALL) += cifs_spneg
cifs-$(CONFIG_CIFS_DFS_UPCALL) += dns_resolve.o cifs_dfs_ref.o
-cifs-$(CONFIG_CIFS_FSCACHE) += cache.o
+cifs-$(CONFIG_CIFS_FSCACHE) += fscache.o cache.o
Index: cifs-2.6/fs/cifs/cache.c
===================================================================
--- cifs-2.6.orig/fs/cifs/cache.c
+++ cifs-2.6/fs/cifs/cache.c
@@ -51,3 +51,28 @@ void cifs_fscache_unregister(void)
fscache_unregister_netfs(&cifs_fscache_netfs);
}
+/*
+ * Server object currently keyed by hostname
+ */
+static uint16_t cifs_server_get_key(const void *cookie_netfs_data,
+ void *buffer, uint16_t maxbuf)
+{
+ const struct TCP_Server_Info *server = cookie_netfs_data;
+ uint16_t len = strnlen(server->hostname, sizeof(server->hostname));
+
+ if (len > maxbuf)
+ return 0;
+
+ memcpy(buffer, server->hostname, len);
+
+ return len;
+}
+
+/*
+ * Server object for FS-Cache
+ */
+const struct fscache_cookie_def cifs_fscache_server_index_def = {
+ .name = "CIFS.server",
+ .type = FSCACHE_COOKIE_TYPE_INDEX,
+ .get_key = cifs_server_get_key,
+};
Index: cifs-2.6/fs/cifs/cifsglob.h
===================================================================
--- cifs-2.6.orig/fs/cifs/cifsglob.h
+++ cifs-2.6/fs/cifs/cifsglob.h
@@ -193,6 +193,9 @@ struct TCP_Server_Info {
bool sec_mskerberos; /* supports legacy MS Kerberos */
bool sec_kerberosu2u; /* supports U2U Kerberos */
bool sec_ntlmssp; /* supports NTLMSSP */
+#ifdef CONFIG_CIFS_FSCACHE
+ struct fscache_cookie *fscache; /* client index cache cookie */
+#endif
};
/*
Index: cifs-2.6/fs/cifs/connect.c
===================================================================
--- cifs-2.6.orig/fs/cifs/connect.c
+++ cifs-2.6/fs/cifs/connect.c
@@ -48,6 +48,7 @@
#include "nterr.h"
#include "rfc1002pdu.h"
#include "cn_cifs.h"
+#include "fscache.h"
#define CIFS_PORT 445
#define RFC1001_PORT 139
@@ -1453,6 +1454,8 @@ cifs_put_tcp_session(struct TCP_Server_I
return;
}
+ cifs_fscache_release_client_cookie(server);
+
list_del_init(&server->tcp_ses_list);
write_unlock(&cifs_tcp_ses_lock);
@@ -1572,6 +1575,7 @@ cifs_get_tcp_session(struct smb_vol *vol
goto out_err;
}
+ cifs_fscache_get_client_cookie(tcp_ses);
/* thread spawned, put it on the list */
write_lock(&cifs_tcp_ses_lock);
list_add(&tcp_ses->tcp_ses_list, &cifs_tcp_ses_list);
Index: cifs-2.6/fs/cifs/fscache.c
===================================================================
--- /dev/null
+++ cifs-2.6/fs/cifs/fscache.c
@@ -0,0 +1,47 @@
+/*
+ * fs/cifs/fscache.c - CIFS filesystem cache interface
+ *
+ * Copyright (c) 2010 Novell, Inc.
+ * Authors(s): Suresh Jayaraman (sjayaraman-l3A5Bk7waGM@public.gmane.org>
+ *
+ * This library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
+ * the GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/sched.h>
+#include <linux/mm.h>
+#include <linux/in6.h>
+
+#include "fscache.h"
+#include "cifsglob.h"
+#include "cifs_debug.h"
+
+void cifs_fscache_get_client_cookie(struct TCP_Server_Info *server)
+{
+ server->fscache =
+ fscache_acquire_cookie(cifs_fscache_netfs.primary_index,
+ &cifs_fscache_server_index_def, server);
+ cFYI(1, "CIFS: get client cookie (0x%p/0x%p)\n",
+ server, server->fscache);
+}
+
+void cifs_fscache_release_client_cookie(struct TCP_Server_Info *server)
+{
+ cFYI(1, "CIFS: release client cookie (0x%p/0x%p)\n",
+ server, server->fscache);
+ fscache_relinquish_cookie(server->fscache, 0);
+ server->fscache = NULL;
+}
+
Index: cifs-2.6/fs/cifs/fscache.h
===================================================================
--- cifs-2.6.orig/fs/cifs/fscache.h
+++ cifs-2.6/fs/cifs/fscache.h
@@ -27,14 +27,26 @@
#ifdef CONFIG_CIFS_FSCACHE
extern struct fscache_netfs cifs_fscache_netfs;
+extern const struct fscache_cookie_def cifs_fscache_server_index_def;
extern int cifs_fscache_register(void);
extern void cifs_fscache_unregister(void);
+/*
+ * fscache.c
+ */
+extern void cifs_fscache_get_client_cookie(struct TCP_Server_Info *);
+extern void cifs_fscache_release_client_cookie(struct TCP_Server_Info *);
+
#else /* CONFIG_CIFS_FSCACHE */
static inline int cifs_fscache_register(void) { return 0; }
static inline void cifs_fscache_unregister(void) {}
+static inline void
+cifs_fscache_get_client_cookie(struct TCP_Server_Info *server) {}
+static inline void
+cifs_fscache_get_client_cookie(struct TCP_Server_Info *server); {}
+
#endif /* CONFIG_CIFS_FSCACHE */
#endif /* _CIFS_FSCACHE_H */

View file

@ -0,0 +1,212 @@
From: Suresh Jayaraman <sjayaraman@suse.de>
Subject: [RFC][PATCH 07/10] cifs: FS-Cache page management
Date: Tue, 22 Jun 2010 20:53:48 +0530
Lines: 175
Message-ID: <1277220228-3635-1-git-send-email-sjayaraman@suse.de>
References: <yes>
Cc: linux-cifs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org, David Howells <dhowells@redhat.com>
To: Steve French <smfrench@gmail.com>
X-From: linux-kernel-owner@vger.kernel.org Tue Jun 22 17:44:27 2010
Return-path: <linux-kernel-owner@vger.kernel.org>
Envelope-to: glk-linux-kernel-3@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-kernel-owner@vger.kernel.org>)
id 1OR5eF-0008G7-BK
for glk-linux-kernel-3@lo.gmane.org; Tue, 22 Jun 2010 17:44:27 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1754757Ab0FVPoS (ORCPT <rfc822;glk-linux-kernel-3@m.gmane.org>);
Tue, 22 Jun 2010 11:44:18 -0400
Received: from victor.provo.novell.com ([137.65.250.26]:54214 "EHLO
victor.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1752542Ab0FVPoB (ORCPT
<rfc822;groupwise-SJayaraman@novell.com:0:0>);
Tue, 22 Jun 2010 11:44:01 -0400
Received: from localhost (prv-ext-foundry1int.gns.novell.com [137.65.251.240])
by victor.provo.novell.com with ESMTP; Tue, 22 Jun 2010 09:23:50 -0600
X-Mailer: git-send-email 1.6.4.2
In-Reply-To: <yes>
Sender: linux-kernel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-kernel.vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1001761>
Takes care of invalidation and release of FS-Cache marked pages and also
invalidation of the FsCache page flag when the inode is removed.
Signed-off-by: Suresh Jayaraman <sjayaraman@suse.de>
---
fs/cifs/cache.c | 31 +++++++++++++++++++++++++++++++
fs/cifs/file.c | 20 ++++++++++++++++++++
fs/cifs/fscache.c | 26 ++++++++++++++++++++++++++
fs/cifs/fscache.h | 16 ++++++++++++++++
4 files changed, 93 insertions(+), 0 deletions(-)
diff --git a/fs/cifs/cache.c b/fs/cifs/cache.c
index b205424..3a733c1 100644
--- a/fs/cifs/cache.c
+++ b/fs/cifs/cache.c
@@ -210,6 +210,36 @@ fscache_checkaux cifs_fscache_inode_check_aux(void *cookie_netfs_data,
return FSCACHE_CHECKAUX_OKAY;
}
+static void cifs_fscache_inode_now_uncached(void *cookie_netfs_data)
+{
+ struct cifsInodeInfo *cifsi = cookie_netfs_data;
+ struct pagevec pvec;
+ pgoff_t first;
+ int loop, nr_pages;
+
+ pagevec_init(&pvec, 0);
+ first = 0;
+
+ cFYI(1, "cifs inode 0x%p now uncached\n", cifsi);
+
+ for (;;) {
+ nr_pages = pagevec_lookup(&pvec,
+ cifsi->vfs_inode.i_mapping, first,
+ PAGEVEC_SIZE - pagevec_count(&pvec));
+ if (!nr_pages)
+ break;
+
+ for (loop = 0; loop < nr_pages; loop++)
+ ClearPageFsCache(pvec.pages[loop]);
+
+ first = pvec.pages[nr_pages - 1]->index + 1;
+
+ pvec.nr = nr_pages;
+ pagevec_release(&pvec);
+ cond_resched();
+ }
+}
+
const struct fscache_cookie_def cifs_fscache_inode_object_def = {
.name = "CIFS.uniqueid",
.type = FSCACHE_COOKIE_TYPE_DATAFILE,
@@ -217,4 +247,5 @@ const struct fscache_cookie_def cifs_fscache_inode_object_def = {
.get_attr = cifs_fscache_inode_get_attr,
.get_aux = cifs_fscache_inode_get_aux,
.check_aux = cifs_fscache_inode_check_aux,
+ .now_uncached = cifs_fscache_inode_now_uncached,
};
diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index 55ecb55..786ec04 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -2271,6 +2271,22 @@ out:
return rc;
}
+static int cifs_release_page(struct page *page, gfp_t gfp)
+{
+ if (PagePrivate(page))
+ return 0;
+
+ return cifs_fscache_release_page(page, gfp);
+}
+
+static void cifs_invalidate_page(struct page *page, unsigned long offset)
+{
+ struct cifsInodeInfo *cifsi = CIFS_I(page->mapping->host);
+
+ if (offset == 0)
+ cifs_fscache_invalidate_page(page, &cifsi->vfs_inode);
+}
+
static void
cifs_oplock_break(struct slow_work *work)
{
@@ -2344,6 +2360,8 @@ const struct address_space_operations cifs_addr_ops = {
.write_begin = cifs_write_begin,
.write_end = cifs_write_end,
.set_page_dirty = __set_page_dirty_nobuffers,
+ .releasepage = cifs_release_page,
+ .invalidatepage = cifs_invalidate_page,
/* .sync_page = cifs_sync_page, */
/* .direct_IO = */
};
@@ -2360,6 +2378,8 @@ const struct address_space_operations cifs_addr_ops_smallbuf = {
.write_begin = cifs_write_begin,
.write_end = cifs_write_end,
.set_page_dirty = __set_page_dirty_nobuffers,
+ .releasepage = cifs_release_page,
+ .invalidatepage = cifs_invalidate_page,
/* .sync_page = cifs_sync_page, */
/* .direct_IO = */
};
diff --git a/fs/cifs/fscache.c b/fs/cifs/fscache.c
index ddfd355..c09d3b8 100644
--- a/fs/cifs/fscache.c
+++ b/fs/cifs/fscache.c
@@ -130,3 +130,29 @@ void cifs_fscache_reset_inode_cookie(struct inode *inode)
}
}
+int cifs_fscache_release_page(struct page *page, gfp_t gfp)
+{
+ if (PageFsCache(page)) {
+ struct inode *inode = page->mapping->host;
+ struct cifsInodeInfo *cifsi = CIFS_I(inode);
+
+ cFYI(1, "CIFS: fscache release page (0x%p/0x%p)\n",
+ cifsi->fscache, page);
+ if (!fscache_maybe_release_page(cifsi->fscache, page, gfp))
+ return 0;
+ }
+
+ return 1;
+}
+
+void __cifs_fscache_invalidate_page(struct page *page, struct inode *inode)
+{
+ struct cifsInodeInfo *cifsi = CIFS_I(inode);
+ struct fscache_cookie *cookie = cifsi->fscache;
+
+ cFYI(1, "CIFS: fscache invalidatepage (0x%p/0x%p/0x%p)\n",
+ cookie, page, cifsi);
+ fscache_wait_on_page_write(cookie, page);
+ fscache_uncache_page(cookie, page);
+}
+
diff --git a/fs/cifs/fscache.h b/fs/cifs/fscache.h
index 836bb02..127cb0a 100644
--- a/fs/cifs/fscache.h
+++ b/fs/cifs/fscache.h
@@ -47,6 +47,16 @@ extern void cifs_fscache_release_inode_cookie(struct inode *);
extern void cifs_fscache_set_inode_cookie(struct inode *, struct file *);
extern void cifs_fscache_reset_inode_cookie(struct inode *);
+extern void __cifs_fscache_invalidate_page(struct page *, struct inode *);
+extern int cifs_fscache_release_page(struct page *page, gfp_t gfp);
+
+static inline void cifs_fscache_invalidate_page(struct page *page,
+ struct inode *inode)
+{
+ if (PageFsCache(page))
+ __cifs_fscache_invalidate_page(page, inode);
+}
+
#else /* CONFIG_CIFS_FSCACHE */
static inline int cifs_fscache_register(void) { return 0; }
static inline void cifs_fscache_unregister(void) {}
@@ -63,7 +73,13 @@ static inline void cifs_fscache_release_inode_cookie(struct inode *inode) {}
static inline void cifs_fscache_set_inode_cookie(struct inode *inode,
struct file *filp) {}
static inline void cifs_fscache_reset_inode_cookie(struct inode *inode) {}
+static inline void cifs_fscache_release_page(struct page *page, gfp_t gfp)
+{
+ return 1; /* May release page */
+}
+static inline int cifs_fscache_invalidate_page(struct page *page,
+ struct inode *) {}
#endif /* CONFIG_CIFS_FSCACHE */
--
1.6.4.2

View file

@ -0,0 +1,256 @@
From: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
Subject: [RFC][PATCH 09/10] cifs: read pages from FS-Cache
Date: Tue, 22 Jun 2010 20:54:21 +0530
Lines: 219
Message-ID: <1277220261-3717-1-git-send-email-sjayaraman@suse.de>
References: <yes>
Cc: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Tue Jun 22 17:44:46 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1OR5eX-0008O2-Q4
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Tue, 22 Jun 2010 17:44:46 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1752563Ab0FVPom (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Tue, 22 Jun 2010 11:44:42 -0400
Received: from victor.provo.novell.com ([137.65.250.26]:42741 "EHLO
victor.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1752542Ab0FVPok (ORCPT
<rfc822;groupwise-SJayaraman-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org:0:0>);
Tue, 22 Jun 2010 11:44:40 -0400
Received: from localhost (prv-ext-foundry1int.gns.novell.com [137.65.251.240])
by victor.provo.novell.com with ESMTP; Tue, 22 Jun 2010 09:24:22 -0600
X-Mailer: git-send-email 1.6.4.2
In-Reply-To: <yes>
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1001762>
Read pages from a FS-Cache data storage object into a CIFS inode.
Signed-off-by: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
---
fs/cifs/file.c | 19 ++++++++++++++
fs/cifs/fscache.c | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++
fs/cifs/fscache.h | 40 ++++++++++++++++++++++++++++-
3 files changed, 131 insertions(+), 1 deletions(-)
diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index 39c1ce0..42d2f25 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -1978,6 +1978,16 @@ static int cifs_readpages(struct file *file, struct address_space *mapping,
cifs_sb = CIFS_SB(file->f_path.dentry->d_sb);
pTcon = cifs_sb->tcon;
+ /*
+ * Reads as many pages as possible from fscache. Returns -ENOBUFS
+ * immediately if the cookie is negative
+ */
+ rc = cifs_readpages_from_fscache(mapping->host, mapping, page_list,
+ &num_pages);
+ cFYI(1, "CIFS: readpages_from_fscache returned %d\n", rc);
+ if (rc == 0)
+ goto read_complete;
+
cFYI(DBG2, "rpages: num pages %d", num_pages);
for (i = 0; i < num_pages; ) {
unsigned contig_pages;
@@ -2090,6 +2100,7 @@ static int cifs_readpages(struct file *file, struct address_space *mapping,
smb_read_data = NULL;
}
+read_complete:
FreeXid(xid);
return rc;
}
@@ -2100,6 +2111,12 @@ static int cifs_readpage_worker(struct file *file, struct page *page,
char *read_data;
int rc;
+ /* Is the page cached? */
+ rc = cifs_readpage_from_fscache(file->f_path.dentry->d_inode, page);
+ cFYI(1, "CIFS: cifs_readpage_from_fscache returned %d\n", rc);
+ if (rc == 0)
+ goto read_complete;
+
page_cache_get(page);
read_data = kmap(page);
/* for reads over a certain size could initiate async read ahead */
@@ -2128,6 +2145,8 @@ static int cifs_readpage_worker(struct file *file, struct page *page,
io_error:
kunmap(page);
page_cache_release(page);
+
+read_complete:
return rc;
}
diff --git a/fs/cifs/fscache.c b/fs/cifs/fscache.c
index 13e47d5..6813737 100644
--- a/fs/cifs/fscache.c
+++ b/fs/cifs/fscache.c
@@ -145,6 +145,79 @@ int cifs_fscache_release_page(struct page *page, gfp_t gfp)
return 1;
}
+static void cifs_readpage_from_fscache_complete(struct page *page, void *ctx,
+ int error)
+{
+ cFYI(1, "CFS: readpage_from_fscache_complete (0x%p/%d)\n",
+ page, error);
+ if (!error)
+ SetPageUptodate(page);
+ unlock_page(page);
+}
+
+/*
+ * Retrieve a page from FS-Cache
+ */
+int __cifs_readpage_from_fscache(struct inode *inode, struct page *page)
+{
+ int ret;
+
+ cFYI(1, "CIFS: readpage_from_fscache(fsc:%p, p:%p, i:0x%p\n",
+ CIFS_I(inode)->fscache, page, inode);
+ ret = fscache_read_or_alloc_page(CIFS_I(inode)->fscache, page,
+ cifs_readpage_from_fscache_complete,
+ NULL,
+ GFP_KERNEL);
+ switch (ret) {
+
+ case 0: /* page found in fscache, read submitted */
+ cFYI(1, "CIFS: readpage_from_fscache: submitted\n");
+ return ret;
+ case -ENOBUFS: /* page won't be cached */
+ case -ENODATA: /* page not in cache */
+ cFYI(1, "CIFS: readpage_from_fscache %d\n", ret);
+ return 1;
+
+ default:
+ cFYI(1, "unknown error ret = %d", ret);
+ }
+ return ret;
+}
+
+/*
+ * Retrieve a set of pages from FS-Cache
+ */
+int __cifs_readpages_from_fscache(struct inode *inode,
+ struct address_space *mapping,
+ struct list_head *pages,
+ unsigned *nr_pages)
+{
+ int ret;
+
+ cFYI(1, "CIFS: __cifs_readpages_from_fscache (0x%p/%u/0x%p)\n",
+ CIFS_I(inode)->fscache, *nr_pages, inode);
+ ret = fscache_read_or_alloc_pages(CIFS_I(inode)->fscache, mapping,
+ pages, nr_pages,
+ cifs_readpage_from_fscache_complete,
+ NULL,
+ mapping_gfp_mask(mapping));
+ switch (ret) {
+ case 0: /* read submitted to the cache for all pages */
+ cFYI(1, "CIFS: readpages_from_fscache\n");
+ return ret;
+
+ case -ENOBUFS: /* some pages are not cached and can't be */
+ case -ENODATA: /* some pages are not cached */
+ cFYI(1, "CIFS: readpages_from_fscache: no page\n");
+ return 1;
+
+ default:
+ cFYI(1, "unknown error ret = %d", ret);
+ }
+
+ return ret;
+}
+
void __cifs_readpage_to_fscache(struct inode *inode, struct page *page)
{
int ret;
diff --git a/fs/cifs/fscache.h b/fs/cifs/fscache.h
index e34d8ab..03bd3fe 100644
--- a/fs/cifs/fscache.h
+++ b/fs/cifs/fscache.h
@@ -31,7 +31,6 @@ extern const struct fscache_cookie_def cifs_fscache_server_index_def;
extern const struct fscache_cookie_def cifs_fscache_super_index_def;
extern const struct fscache_cookie_def cifs_fscache_inode_object_def;
-
extern int cifs_fscache_register(void);
extern void cifs_fscache_unregister(void);
@@ -49,6 +48,11 @@ extern void cifs_fscache_reset_inode_cookie(struct inode *);
extern void __cifs_fscache_invalidate_page(struct page *, struct inode *);
extern int cifs_fscache_release_page(struct page *page, gfp_t gfp);
+extern int __cifs_readpage_from_fscache(struct inode *, struct page *);
+extern int __cifs_readpages_from_fscache(struct inode *,
+ struct address_space *,
+ struct list_head *,
+ unsigned *);
extern void __cifs_readpage_to_fscache(struct inode *, struct page *);
@@ -59,6 +63,26 @@ static inline void cifs_fscache_invalidate_page(struct page *page,
__cifs_fscache_invalidate_page(page, inode);
}
+static inline int cifs_readpage_from_fscache(struct inode *inode,
+ struct page *page)
+{
+ if (CIFS_I(inode)->fscache)
+ return __cifs_readpage_from_fscache(inode, page);
+
+ return -ENOBUFS;
+}
+
+static inline int cifs_readpages_from_fscache(struct inode *inode,
+ struct address_space *mapping,
+ struct list_head *pages,
+ unsigned *nr_pages)
+{
+ if (CIFS_I(inode)->fscache)
+ return __cifs_readpages_from_fscache(inode, mapping, pages,
+ nr_pages);
+ return -ENOBUFS;
+}
+
static inline void cifs_readpage_to_fscache(struct inode *inode,
struct page *page)
{
@@ -89,6 +113,20 @@ static inline void cifs_fscache_release_page(struct page *page, gfp_t gfp)
static inline int cifs_fscache_invalidate_page(struct page *page,
struct inode *) {}
+static inline int
+cifs_readpage_from_fscache(struct inode *inode, struct page *page)
+{
+ return -ENOBUFS;
+}
+
+static inline int cifs_readpages_from_fscache(struct inode *inode,
+ struct address_space *mapping,
+ struct list_head *pages,
+ unsigned *nr_pages)
+{
+ return -ENOBUFS;
+}
+
static inline void cifs_readpage_to_fscache(struct inode *inode,
struct page *page) {}
--
1.6.4.2

View file

@ -0,0 +1,139 @@
From: Suresh Jayaraman <sjayaraman@suse.de>
Subject: [RFC][PATCH 08/10] cifs: store pages into local cache
Date: Tue, 22 Jun 2010 20:54:00 +0530
Lines: 102
Message-ID: <1277220240-3674-1-git-send-email-sjayaraman@suse.de>
References: <yes>
Cc: linux-cifs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org, David Howells <dhowells@redhat.com>
To: Steve French <smfrench@gmail.com>
X-From: linux-fsdevel-owner@vger.kernel.org Tue Jun 22 17:45:09 2010
Return-path: <linux-fsdevel-owner@vger.kernel.org>
Envelope-to: lnx-linux-fsdevel@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-fsdevel-owner@vger.kernel.org>)
id 1OR5ev-00007O-6e
for lnx-linux-fsdevel@lo.gmane.org; Tue, 22 Jun 2010 17:45:09 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1755015Ab0FVPon (ORCPT <rfc822;lnx-linux-fsdevel@m.gmane.org>);
Tue, 22 Jun 2010 11:44:43 -0400
Received: from victor.provo.novell.com ([137.65.250.26]:58250 "EHLO
victor.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1751265Ab0FVPok (ORCPT
<rfc822;groupwise-SJayaraman@novell.com:0:0>);
Tue, 22 Jun 2010 11:44:40 -0400
Received: from localhost (prv-ext-foundry1int.gns.novell.com [137.65.251.240])
by victor.provo.novell.com with ESMTP; Tue, 22 Jun 2010 09:24:02 -0600
X-Mailer: git-send-email 1.6.4.2
In-Reply-To: <yes>
Sender: linux-fsdevel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-fsdevel.vger.kernel.org>
X-Mailing-List: linux-fsdevel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1001764>
Store pages from an CIFS inode into the data storage object associated with
that inode.
Signed-off-by: Suresh Jayaraman <sjayaraman@suse.de>
---
fs/cifs/file.c | 6 ++++++
fs/cifs/fscache.c | 13 +++++++++++++
fs/cifs/fscache.h | 11 +++++++++++
3 files changed, 30 insertions(+), 0 deletions(-)
diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index 786ec04..39c1ce0 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -2060,6 +2060,8 @@ static int cifs_readpages(struct file *file, struct address_space *mapping,
we will hit it on next read */
/* break; */
+ /* send this page to FS-Cache */
+ cifs_readpage_to_fscache(mapping->host, page);
}
} else {
cFYI(1, "No bytes read (%d) at offset %lld . "
@@ -2117,6 +2119,10 @@ static int cifs_readpage_worker(struct file *file, struct page *page,
flush_dcache_page(page);
SetPageUptodate(page);
+
+ /* send this page to the cache */
+ cifs_readpage_to_fscache(file->f_path.dentry->d_inode, page);
+
rc = 0;
io_error:
diff --git a/fs/cifs/fscache.c b/fs/cifs/fscache.c
index c09d3b8..13e47d5 100644
--- a/fs/cifs/fscache.c
+++ b/fs/cifs/fscache.c
@@ -145,6 +145,19 @@ int cifs_fscache_release_page(struct page *page, gfp_t gfp)
return 1;
}
+void __cifs_readpage_to_fscache(struct inode *inode, struct page *page)
+{
+ int ret;
+
+ cFYI(1, "CIFS: readpage_to_fscache(fsc: %p, p: %p, i: %p\n",
+ CIFS_I(inode)->fscache, page, inode);
+ ret = fscache_write_page(CIFS_I(inode)->fscache, page, GFP_KERNEL);
+ cFYI(1, "CIFS: fscache_write_page returned %d\n", ret);
+
+ if (ret != 0)
+ fscache_uncache_page(CIFS_I(inode)->fscache, page);
+}
+
void __cifs_fscache_invalidate_page(struct page *page, struct inode *inode)
{
struct cifsInodeInfo *cifsi = CIFS_I(inode);
diff --git a/fs/cifs/fscache.h b/fs/cifs/fscache.h
index 127cb0a..e34d8ab 100644
--- a/fs/cifs/fscache.h
+++ b/fs/cifs/fscache.h
@@ -50,6 +50,8 @@ extern void cifs_fscache_reset_inode_cookie(struct inode *);
extern void __cifs_fscache_invalidate_page(struct page *, struct inode *);
extern int cifs_fscache_release_page(struct page *page, gfp_t gfp);
+extern void __cifs_readpage_to_fscache(struct inode *, struct page *);
+
static inline void cifs_fscache_invalidate_page(struct page *page,
struct inode *inode)
{
@@ -57,6 +59,13 @@ static inline void cifs_fscache_invalidate_page(struct page *page,
__cifs_fscache_invalidate_page(page, inode);
}
+static inline void cifs_readpage_to_fscache(struct inode *inode,
+ struct page *page)
+{
+ if (PageFsCache(page))
+ __cifs_readpage_to_fscache(inode, page);
+}
+
#else /* CONFIG_CIFS_FSCACHE */
static inline int cifs_fscache_register(void) { return 0; }
static inline void cifs_fscache_unregister(void) {}
@@ -80,6 +89,8 @@ static inline void cifs_fscache_release_page(struct page *page, gfp_t gfp)
static inline int cifs_fscache_invalidate_page(struct page *page,
struct inode *) {}
+static inline void cifs_readpage_to_fscache(struct inode *inode,
+ struct page *page) {}
#endif /* CONFIG_CIFS_FSCACHE */
--
1.6.4.2
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

View file

@ -0,0 +1,355 @@
From: Suresh Jayaraman <sjayaraman@suse.de>
Subject: [RFC][PATCH 06/10] cifs: define inode-level cache object and register them
Date: Tue, 22 Jun 2010 20:53:33 +0530
Lines: 318
Message-ID: <1277220214-3597-1-git-send-email-sjayaraman@suse.de>
References: <yes>
Cc: linux-cifs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org, David Howells <dhowells@redhat.com>
To: Steve French <smfrench@gmail.com>
X-From: linux-kernel-owner@vger.kernel.org Tue Jun 22 17:45:30 2010
Return-path: <linux-kernel-owner@vger.kernel.org>
Envelope-to: glk-linux-kernel-3@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-kernel-owner@vger.kernel.org>)
id 1OR5fF-0000Ka-Na
for glk-linux-kernel-3@lo.gmane.org; Tue, 22 Jun 2010 17:45:30 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1755952Ab0FVPpP (ORCPT <rfc822;glk-linux-kernel-3@m.gmane.org>);
Tue, 22 Jun 2010 11:45:15 -0400
Received: from victor.provo.novell.com ([137.65.250.26]:59441 "EHLO
victor.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1751397Ab0FVPoA (ORCPT
<rfc822;groupwise-SJayaraman@novell.com:0:0>);
Tue, 22 Jun 2010 11:44:00 -0400
Received: from localhost (prv-ext-foundry1int.gns.novell.com [137.65.251.240])
by victor.provo.novell.com with ESMTP; Tue, 22 Jun 2010 09:23:35 -0600
X-Mailer: git-send-email 1.6.4.2
In-Reply-To: <yes>
Sender: linux-kernel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-kernel.vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1001765>
Define inode-level data storage objects (managed by cifsInodeInfo structs).
Each inode-level object is created in a super-block level object and is itself
a data storage object in to which pages from the inode are stored.
The inode object is keyed by UniqueId. The coherency data being used is
LastWriteTime and the file size.
Signed-off-by: Suresh Jayaraman <sjayaraman@suse.de>
---
fs/cifs/cache.c | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++
fs/cifs/cifsfs.c | 7 ++++
fs/cifs/cifsglob.h | 3 +
fs/cifs/file.c | 6 +++
fs/cifs/fscache.c | 68 +++++++++++++++++++++++++++++++++++++++++++++
fs/cifs/fscache.h | 12 +++++++
fs/cifs/inode.c | 4 ++
7 files changed, 180 insertions(+)
Index: cifs-2.6/fs/cifs/cache.c
===================================================================
--- cifs-2.6.orig/fs/cifs/cache.c
+++ cifs-2.6/fs/cifs/cache.c
@@ -138,3 +138,83 @@ const struct fscache_cookie_def cifs_fsc
.get_key = cifs_super_get_key,
};
+/*
+ * Auxiliary data attached to CIFS inode within the cache
+ */
+struct cifs_fscache_inode_auxdata {
+ struct timespec last_write_time;
+ loff_t size;
+};
+
+static uint16_t cifs_fscache_inode_get_key(const void *cookie_netfs_data,
+ void *buffer, uint16_t maxbuf)
+{
+ const struct cifsInodeInfo *cifsi = cookie_netfs_data;
+ uint16_t keylen;
+
+ /* use the UniqueId as the key */
+ keylen = sizeof(cifsi->uniqueid);
+ if (keylen > maxbuf)
+ keylen = 0;
+ else
+ memcpy(buffer, &cifsi->uniqueid, keylen);
+
+ return keylen;
+}
+
+static void
+cifs_fscache_inode_get_attr(const void *cookie_netfs_data, uint64_t *size)
+{
+ const struct cifsInodeInfo *cifsi = cookie_netfs_data;
+
+ *size = cifsi->vfs_inode.i_size;
+}
+
+static uint16_t
+cifs_fscache_inode_get_aux(const void *cookie_netfs_data, void *buffer,
+ uint16_t maxbuf)
+{
+ struct cifs_fscache_inode_auxdata auxdata;
+ const struct cifsInodeInfo *cifsi = cookie_netfs_data;
+
+ memset(&auxdata, 0, sizeof(auxdata));
+ auxdata.size = cifsi->vfs_inode.i_size;
+ auxdata.last_write_time = cifsi->vfs_inode.i_ctime;
+
+ if (maxbuf > sizeof(auxdata))
+ maxbuf = sizeof(auxdata);
+
+ memcpy(buffer, &auxdata, maxbuf);
+
+ return maxbuf;
+}
+
+static enum
+fscache_checkaux cifs_fscache_inode_check_aux(void *cookie_netfs_data,
+ const void *data,
+ uint16_t datalen)
+{
+ struct cifs_fscache_inode_auxdata auxdata;
+ struct cifsInodeInfo *cifsi = cookie_netfs_data;
+
+ if (datalen != sizeof(auxdata))
+ return FSCACHE_CHECKAUX_OBSOLETE;
+
+ memset(&auxdata, 0, sizeof(auxdata));
+ auxdata.size = cifsi->vfs_inode.i_size;
+ auxdata.last_write_time = cifsi->vfs_inode.i_ctime;
+
+ if (memcmp(data, &auxdata, datalen) != 0)
+ return FSCACHE_CHECKAUX_OBSOLETE;
+
+ return FSCACHE_CHECKAUX_OKAY;
+}
+
+const struct fscache_cookie_def cifs_fscache_inode_object_def = {
+ .name = "CIFS.uniqueid",
+ .type = FSCACHE_COOKIE_TYPE_DATAFILE,
+ .get_key = cifs_fscache_inode_get_key,
+ .get_attr = cifs_fscache_inode_get_attr,
+ .get_aux = cifs_fscache_inode_get_aux,
+ .check_aux = cifs_fscache_inode_check_aux,
+};
Index: cifs-2.6/fs/cifs/cifsfs.c
===================================================================
--- cifs-2.6.orig/fs/cifs/cifsfs.c
+++ cifs-2.6/fs/cifs/cifsfs.c
@@ -330,6 +330,12 @@ cifs_destroy_inode(struct inode *inode)
}
static void
+cifs_clear_inode(struct inode *inode)
+{
+ cifs_fscache_release_inode_cookie(inode);
+}
+
+static void
cifs_show_address(struct seq_file *s, struct TCP_Server_Info *server)
{
seq_printf(s, ",addr=");
@@ -490,6 +496,7 @@ static const struct super_operations cif
.alloc_inode = cifs_alloc_inode,
.destroy_inode = cifs_destroy_inode,
.drop_inode = cifs_drop_inode,
+ .clear_inode = cifs_clear_inode,
/* .delete_inode = cifs_delete_inode, */ /* Do not need above
function unless later we add lazy close of inodes or unless the
kernel forgets to call us with the same number of releases (closes)
Index: cifs-2.6/fs/cifs/cifsglob.h
===================================================================
--- cifs-2.6.orig/fs/cifs/cifsglob.h
+++ cifs-2.6/fs/cifs/cifsglob.h
@@ -407,6 +407,9 @@ struct cifsInodeInfo {
bool invalid_mapping:1; /* pagecache is invalid */
u64 server_eof; /* current file size on server */
u64 uniqueid; /* server inode number */
+#ifdef CONFIG_CIFS_FSCACHE
+ struct fscache_cookie *fscache;
+#endif
struct inode vfs_inode;
};
Index: cifs-2.6/fs/cifs/file.c
===================================================================
--- cifs-2.6.orig/fs/cifs/file.c
+++ cifs-2.6/fs/cifs/file.c
@@ -40,6 +40,7 @@
#include "cifs_unicode.h"
#include "cifs_debug.h"
#include "cifs_fs_sb.h"
+#include "fscache.h"
static inline int cifs_convert_flags(unsigned int flags)
{
@@ -282,6 +283,9 @@ int cifs_open(struct inode *inode, struc
CIFSSMBClose(xid, tcon, netfid);
rc = -ENOMEM;
}
+
+ cifs_fscache_set_inode_cookie(inode, file);
+
goto out;
} else if ((rc == -EINVAL) || (rc == -EOPNOTSUPP)) {
if (tcon->ses->serverNOS)
@@ -373,6 +377,8 @@ int cifs_open(struct inode *inode, struc
goto out;
}
+ cifs_fscache_set_inode_cookie(inode, file);
+
if (oplock & CIFS_CREATE_ACTION) {
/* time to set mode which we can not set earlier due to
problems creating new read-only files */
Index: cifs-2.6/fs/cifs/fscache.c
===================================================================
--- cifs-2.6.orig/fs/cifs/fscache.c
+++ cifs-2.6/fs/cifs/fscache.c
@@ -62,3 +62,71 @@ void cifs_fscache_release_super_cookie(s
tcon->fscache = NULL;
}
+static void cifs_fscache_enable_inode_cookie(struct inode *inode)
+{
+ struct cifsInodeInfo *cifsi = CIFS_I(inode);
+ struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb);
+
+ if (cifsi->fscache)
+ return;
+
+ cifsi->fscache = fscache_acquire_cookie(cifs_sb->tcon->fscache,
+ &cifs_fscache_inode_object_def,
+ cifsi);
+ cFYI(1, "CIFS: got FH cookie (0x%p/0x%p/0x%p)\n",
+ cifs_sb->tcon, cifsi, cifsi->fscache);
+}
+
+void cifs_fscache_release_inode_cookie(struct inode *inode)
+{
+ struct cifsInodeInfo *cifsi = CIFS_I(inode);
+
+ if (cifsi->fscache) {
+ cFYI(1, "CIFS releasing inode cookie (0x%p/0x%p)\n",
+ cifsi, cifsi->fscache);
+ fscache_relinquish_cookie(cifsi->fscache, 0);
+ cifsi->fscache = NULL;
+ }
+}
+
+static void cifs_fscache_disable_inode_cookie(struct inode *inode)
+{
+ struct cifsInodeInfo *cifsi = CIFS_I(inode);
+
+ if (cifsi->fscache) {
+ cFYI(1, "CIFS disabling inode cookie (0x%p/0x%p)\n",
+ cifsi, cifsi->fscache);
+ fscache_relinquish_cookie(cifsi->fscache, 1);
+ cifsi->fscache = NULL;
+ }
+}
+
+void cifs_fscache_set_inode_cookie(struct inode *inode, struct file *filp)
+{
+ /* BB: parallel opens - need locking? */
+ if ((filp->f_flags & O_ACCMODE) != O_RDONLY)
+ cifs_fscache_disable_inode_cookie(inode);
+ else {
+ cifs_fscache_enable_inode_cookie(inode);
+ cFYI(1, "CIFS: fscache inode cookie set\n");
+ }
+}
+
+void cifs_fscache_reset_inode_cookie(struct inode *inode)
+{
+ struct cifsInodeInfo *cifsi = CIFS_I(inode);
+ struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb);
+ struct fscache_cookie *old = cifsi->fscache;
+
+ if (cifsi->fscache) {
+ /* retire the current fscache cache and get a new one */
+ fscache_relinquish_cookie(cifsi->fscache, 1);
+
+ cifsi->fscache = fscache_acquire_cookie(cifs_sb->tcon->fscache,
+ &cifs_fscache_inode_object_def,
+ cifsi);
+ cFYI(1, "CIFS: new cookie (0x%p/0x%p) oldcookie 0x%p\n",
+ cifsi, cifsi->fscache, old);
+ }
+}
+
Index: cifs-2.6/fs/cifs/fscache.h
===================================================================
--- cifs-2.6.orig/fs/cifs/fscache.h
+++ cifs-2.6/fs/cifs/fscache.h
@@ -29,6 +29,8 @@
extern struct fscache_netfs cifs_fscache_netfs;
extern const struct fscache_cookie_def cifs_fscache_server_index_def;
extern const struct fscache_cookie_def cifs_fscache_super_index_def;
+extern const struct fscache_cookie_def cifs_fscache_inode_object_def;
+
extern int cifs_fscache_register(void);
extern void cifs_fscache_unregister(void);
@@ -41,6 +43,10 @@ extern void cifs_fscache_release_client_
extern void cifs_fscache_get_super_cookie(struct cifsTconInfo *);
extern void cifs_fscache_release_super_cookie(struct cifsTconInfo *);
+extern void cifs_fscache_release_inode_cookie(struct inode *);
+extern void cifs_fscache_set_inode_cookie(struct inode *, struct file *);
+extern void cifs_fscache_reset_inode_cookie(struct inode *);
+
#else /* CONFIG_CIFS_FSCACHE */
static inline int cifs_fscache_register(void) { return 0; }
static inline void cifs_fscache_unregister(void) {}
@@ -53,6 +59,12 @@ static inline void cifs_fscache_get_supe
static inline void
cifs_fscache_release_super_cookie(struct cifsTconInfo *tcon) {}
+static inline void cifs_fscache_release_inode_cookie(struct inode *inode) {}
+static inline void cifs_fscache_set_inode_cookie(struct inode *inode,
+ struct file *filp) {}
+static inline void cifs_fscache_reset_inode_cookie(struct inode *inode) {}
+
+
#endif /* CONFIG_CIFS_FSCACHE */
#endif /* _CIFS_FSCACHE_H */
Index: cifs-2.6/fs/cifs/inode.c
===================================================================
--- cifs-2.6.orig/fs/cifs/inode.c
+++ cifs-2.6/fs/cifs/inode.c
@@ -29,6 +29,7 @@
#include "cifsproto.h"
#include "cifs_debug.h"
#include "cifs_fs_sb.h"
+#include "fscache.h"
static void cifs_set_ops(struct inode *inode, const bool is_dfs_referral)
@@ -776,6 +777,8 @@ retry_iget5_locked:
inode->i_flags |= S_NOATIME | S_NOCMTIME;
if (inode->i_state & I_NEW) {
inode->i_ino = hash;
+ /* initialize per-inode cache cookie pointer */
+ CIFS_I(inode)->fscache = NULL;
unlock_new_inode(inode);
}
}
@@ -1568,6 +1571,7 @@ cifs_invalidate_mapping(struct inode *in
cifs_i->write_behind_rc = rc;
}
invalidate_remote_inode(inode);
+ cifs_fscache_reset_inode_cookie(inode);
}
int cifs_revalidate_file(struct file *filp)

View file

@ -0,0 +1,214 @@
From: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
Subject: [RFC][PATCH 05/10] cifs: define superblock-level cache index objects and register them
Date: Tue, 22 Jun 2010 20:53:26 +0530
Lines: 177
Message-ID: <1277220206-3559-1-git-send-email-sjayaraman@suse.de>
References: <yes>
Cc: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Tue Jun 22 17:45:50 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1OR5fZ-0000Vj-Mj
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Tue, 22 Jun 2010 17:45:50 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1752511Ab0FVPpJ (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Tue, 22 Jun 2010 11:45:09 -0400
Received: from victor.provo.novell.com ([137.65.250.26]:56189 "EHLO
victor.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1752441Ab0FVPoA (ORCPT
<rfc822;groupwise-SJayaraman-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org:0:0>);
Tue, 22 Jun 2010 11:44:00 -0400
Received: from localhost (prv-ext-foundry1int.gns.novell.com [137.65.251.240])
by victor.provo.novell.com with ESMTP; Tue, 22 Jun 2010 09:23:29 -0600
X-Mailer: git-send-email 1.6.4.2
In-Reply-To: <yes>
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1001766>
Define superblock-level cache index objects (managed by cifsTconInfo structs).
Each superblock object is created in a server-level index object and in itself
an index into which inode-level objects are inserted.
Currently, the superblock objects are keyed by sharename.
Signed-off-by: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
---
fs/cifs/cache.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++
fs/cifs/cifsglob.h | 3 ++
fs/cifs/connect.c | 4 +++
fs/cifs/fscache.c | 17 ++++++++++++++
fs/cifs/fscache.h | 6 +++++
5 files changed, 92 insertions(+)
Index: cifs-2.6/fs/cifs/cache.c
===================================================================
--- cifs-2.6.orig/fs/cifs/cache.c
+++ cifs-2.6/fs/cifs/cache.c
@@ -76,3 +76,65 @@ const struct fscache_cookie_def cifs_fsc
.type = FSCACHE_COOKIE_TYPE_INDEX,
.get_key = cifs_server_get_key,
};
+
+static char *extract_sharename(const char *treename)
+{
+ const char *src;
+ char *delim, *dst;
+ int len;
+
+ /* skip double chars at the beginning */
+ src = treename + 2;
+
+ /* share name is always preceded by '\\' now */
+ delim = strchr(src, '\\');
+ if (!delim)
+ return ERR_PTR(-EINVAL);
+ delim++;
+ len = strlen(delim);
+
+ /* caller has to free the memory */
+ dst = kstrndup(delim, len, GFP_KERNEL);
+ if (!dst)
+ return ERR_PTR(-ENOMEM);
+
+ return dst;
+}
+
+/*
+ * Superblock object currently keyed by share name
+ */
+static uint16_t cifs_super_get_key(const void *cookie_netfs_data, void *buffer,
+ uint16_t maxbuf)
+{
+ const struct cifsTconInfo *tcon = cookie_netfs_data;
+ char *sharename;
+ uint16_t len;
+
+ sharename = extract_sharename(tcon->treeName);
+ if (IS_ERR(sharename)) {
+ cFYI(1, "CIFS: couldn't extract sharename\n");
+ sharename = NULL;
+ return 0;
+ }
+
+ len = strlen(sharename);
+ if (len > maxbuf)
+ return 0;
+
+ memcpy(buffer, sharename, len);
+
+ kfree(sharename);
+
+ return len;
+}
+
+/*
+ * Superblock object for FS-Cache
+ */
+const struct fscache_cookie_def cifs_fscache_super_index_def = {
+ .name = "CIFS.super",
+ .type = FSCACHE_COOKIE_TYPE_INDEX,
+ .get_key = cifs_super_get_key,
+};
+
Index: cifs-2.6/fs/cifs/cifsglob.h
===================================================================
--- cifs-2.6.orig/fs/cifs/cifsglob.h
+++ cifs-2.6/fs/cifs/cifsglob.h
@@ -317,6 +317,9 @@ struct cifsTconInfo {
bool local_lease:1; /* check leases (only) on local system not remote */
bool broken_posix_open; /* e.g. Samba server versions < 3.3.2, 3.2.9 */
bool need_reconnect:1; /* connection reset, tid now invalid */
+#ifdef CONFIG_CIFS_FSCACHE
+ struct fscache_cookie *fscache; /* cookie for share */
+#endif
/* BB add field for back pointer to sb struct(s)? */
};
Index: cifs-2.6/fs/cifs/connect.c
===================================================================
--- cifs-2.6.orig/fs/cifs/connect.c
+++ cifs-2.6/fs/cifs/connect.c
@@ -1773,6 +1773,8 @@ cifs_put_tcon(struct cifsTconInfo *tcon)
list_del_init(&tcon->tcon_list);
write_unlock(&cifs_tcp_ses_lock);
+ cifs_fscache_release_super_cookie(tcon);
+
xid = GetXid();
CIFSSMBTDis(xid, tcon);
_FreeXid(xid);
@@ -1843,6 +1845,8 @@ cifs_get_tcon(struct cifsSesInfo *ses, s
tcon->nocase = volume_info->nocase;
tcon->local_lease = volume_info->local_lease;
+ cifs_fscache_get_super_cookie(tcon);
+
write_lock(&cifs_tcp_ses_lock);
list_add(&tcon->tcon_list, &ses->tcon_list);
write_unlock(&cifs_tcp_ses_lock);
Index: cifs-2.6/fs/cifs/fscache.c
===================================================================
--- cifs-2.6.orig/fs/cifs/fscache.c
+++ cifs-2.6/fs/cifs/fscache.c
@@ -45,3 +45,20 @@ void cifs_fscache_release_client_cookie(
server->fscache = NULL;
}
+void cifs_fscache_get_super_cookie(struct cifsTconInfo *tcon)
+{
+ tcon->fscache =
+ fscache_acquire_cookie(tcon->ses->server->fscache,
+ &cifs_fscache_super_index_def, tcon);
+ cFYI(1, "CIFS: get superblock cookie (0x%p/0x%p)\n",
+ tcon, tcon->fscache);
+}
+
+void cifs_fscache_release_super_cookie(struct cifsTconInfo *tcon)
+{
+ cFYI(1, "CIFS: releasing superblock cookie (0x%p/0x%p)\n",
+ tcon, tcon->fscache);
+ fscache_relinquish_cookie(tcon->fscache, 0);
+ tcon->fscache = NULL;
+}
+
Index: cifs-2.6/fs/cifs/fscache.h
===================================================================
--- cifs-2.6.orig/fs/cifs/fscache.h
+++ cifs-2.6/fs/cifs/fscache.h
@@ -28,6 +28,7 @@
extern struct fscache_netfs cifs_fscache_netfs;
extern const struct fscache_cookie_def cifs_fscache_server_index_def;
+extern const struct fscache_cookie_def cifs_fscache_super_index_def;
extern int cifs_fscache_register(void);
extern void cifs_fscache_unregister(void);
@@ -37,6 +38,8 @@ extern void cifs_fscache_unregister(void
*/
extern void cifs_fscache_get_client_cookie(struct TCP_Server_Info *);
extern void cifs_fscache_release_client_cookie(struct TCP_Server_Info *);
+extern void cifs_fscache_get_super_cookie(struct cifsTconInfo *);
+extern void cifs_fscache_release_super_cookie(struct cifsTconInfo *);
#else /* CONFIG_CIFS_FSCACHE */
static inline int cifs_fscache_register(void) { return 0; }
@@ -46,6 +49,9 @@ static inline void
cifs_fscache_get_client_cookie(struct TCP_Server_Info *server) {}
static inline void
cifs_fscache_get_client_cookie(struct TCP_Server_Info *server); {}
+static inline void cifs_fscache_get_super_cookie(struct cifsTconInfo *tcon) {}
+static inline void
+cifs_fscache_release_super_cookie(struct cifsTconInfo *tcon) {}
#endif /* CONFIG_CIFS_FSCACHE */

View file

@ -0,0 +1,85 @@
From: Jeff Layton <jlayton-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>
Subject: Re: [RFC][PATCH 02/10] cifs: guard cifsglob.h against multiple
inclusion
Date: Tue, 22 Jun 2010 17:37:42 -0400
Lines: 35
Message-ID: <20100622173742.448e1e94@corrin.poochiereds.net>
References: <yes>
<1277220170-3442-1-git-send-email-sjayaraman@suse.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Cc: Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Tue Jun 22 23:36:08 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1ORB8Z-00027v-R8
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Tue, 22 Jun 2010 23:36:08 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1751663Ab0FVVfq (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Tue, 22 Jun 2010 17:35:46 -0400
Received: from cdptpa-omtalb.mail.rr.com ([75.180.132.121]:46190 "EHLO
cdptpa-omtalb.mail.rr.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1751933Ab0FVVfo (ORCPT
<rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>); Tue, 22 Jun 2010 17:35:44 -0400
X-Authority-Analysis: v=1.0 c=1 a=Y4kVDsoNLLAA:10 a=yQWWgrYGNuUA:10 a=kj9zAlcOel0A:10 a=hGzw-44bAAAA:8 a=6UT2YofcClCzWf3PPoQA:9 a=Ipo6nwFRv7ENfF13HvmH_iG48b8A:4 a=CjuIK1q_8ugA:10 a=0kPLrQdw3YYA:10 a=dowx1zmaLagA:10
X-Cloudmark-Score: 0
X-Originating-IP: 71.70.153.3
Received: from [71.70.153.3] ([71.70.153.3:49036] helo=mail.poochiereds.net)
by cdptpa-oedge01.mail.rr.com (envelope-from <jlayton-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>)
(ecelerity 2.2.2.39 r()) with ESMTP
id 29/22-24471-DAC212C4; Tue, 22 Jun 2010 21:35:42 +0000
Received: from corrin.poochiereds.net (unknown [65.88.2.5])
by mail.poochiereds.net (Postfix) with ESMTPSA id 1C5A1580F4;
Tue, 22 Jun 2010 17:35:41 -0400 (EDT)
In-Reply-To: <1277220170-3442-1-git-send-email-sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-Mailer: Claws Mail 3.7.6 (GTK+ 2.20.1; x86_64-redhat-linux-gnu)
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1001913>
On Tue, 22 Jun 2010 20:52:50 +0530
Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org> wrote:
> Add conditional compile macros to guard the header file against multiple
> inclusion.
>
> Signed-off-by: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
> ---
> fs/cifs/cifsglob.h | 5 +++++
> 1 files changed, 5 insertions(+), 0 deletions(-)
>
> diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
> index a88479c..6b2c39d 100644
> --- a/fs/cifs/cifsglob.h
> +++ b/fs/cifs/cifsglob.h
> @@ -16,6 +16,9 @@
> * the GNU Lesser General Public License for more details.
> *
> */
> +#ifndef _CIFS_GLOB_H
> +#define _CIFS_GLOB_H
> +
> #include <linux/in.h>
> #include <linux/in6.h>
> #include <linux/slab.h>
> @@ -733,3 +736,5 @@ GLOBAL_EXTERN unsigned int cifs_min_small; /* min size of small buf pool */
> GLOBAL_EXTERN unsigned int cifs_max_pending; /* MAX requests at once to server*/
>
> extern const struct slow_work_ops cifs_oplock_break_ops;
> +
> +#endif /* _CIFS_GLOB_H */
Strong ACK
Acked-by: Jeff Layton <jlayton-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>

View file

@ -0,0 +1,254 @@
From: Jeff Layton <jlayton-vpEMnDpepFuMZCB2o+C8xQ@public.gmane.org>
Subject: Re: [RFC][PATCH 04/10] cifs: define server-level cache index
objects and register them with FS-Cache
Date: Tue, 22 Jun 2010 17:52:14 -0400
Lines: 204
Message-ID: <20100622175214.4c56234f@corrin.poochiereds.net>
References: <yes>
<1277220198-3522-1-git-send-email-sjayaraman@suse.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Cc: Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Tue Jun 22 23:50:23 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1ORBMJ-0005WJ-Lj
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Tue, 22 Jun 2010 23:50:20 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1750777Ab0FVVuS (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Tue, 22 Jun 2010 17:50:18 -0400
Received: from cdptpa-omtalb.mail.rr.com ([75.180.132.120]:55670 "EHLO
cdptpa-omtalb.mail.rr.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1750749Ab0FVVuR (ORCPT
<rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>); Tue, 22 Jun 2010 17:50:17 -0400
X-Authority-Analysis: v=1.1 cv=8MuG1bpxLlSbaYWWtODGdBCK7StbFcRsMXhWm1NVx/I= c=1 sm=0 a=wpY4Lvx3kJcA:10 a=UBIxAjGgU1YA:10 a=kj9zAlcOel0A:10 a=ld/erqUjW76FpBUqCqkKeA==:17 a=VwQbUJbxAAAA:8 a=qYub2k57AAAA:8 a=uYIlwBZcjrF9BUCsR4kA:9 a=OO1ZLbZb6q4TPdC5pcAA:7 a=jFshslHAf8hJVDYUYRlYN4n-w5YA:4 a=CjuIK1q_8ugA:10 a=x8gzFH9gYPwA:10 a=0kPLrQdw3YYA:10 a=jBoGP612-tUA:10 a=t5DF_bUGhurCx8LQ:21 a=W6P_Gh1y2IibdbqZ:21 a=ld/erqUjW76FpBUqCqkKeA==:117
X-Cloudmark-Score: 0
X-Originating-IP: 71.70.153.3
Received: from [71.70.153.3] ([71.70.153.3:59154] helo=mail.poochiereds.net)
by cdptpa-oedge03.mail.rr.com (envelope-from <jlayton-vpEMnDpepFuMZCB2o+C8xQ@public.gmane.org>)
(ecelerity 2.2.2.39 r()) with ESMTP
id AC/10-00502-710312C4; Tue, 22 Jun 2010 21:50:16 +0000
Received: from corrin.poochiereds.net (unknown [65.88.2.5])
by mail.poochiereds.net (Postfix) with ESMTPSA id 03B11580F4;
Tue, 22 Jun 2010 17:50:14 -0400 (EDT)
In-Reply-To: <1277220198-3522-1-git-send-email-sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-Mailer: Claws Mail 3.7.6 (GTK+ 2.20.1; x86_64-redhat-linux-gnu)
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1001918>
On Tue, 22 Jun 2010 20:53:18 +0530
Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org> wrote:
> Define server-level cache index objects (as managed by TCP_ServerInfo structs).
> Each server object is created in the CIFS top-level index object and is itself
> an index into which superblock-level objects are inserted.
>
> Currently, the server objects are keyed by hostname.
>
> Signed-off-by: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
> ---
> fs/cifs/Makefile | 2 +-
> fs/cifs/cache.c | 25 +++++++++++++++++++++++++
> fs/cifs/cifsglob.h | 3 +++
> fs/cifs/connect.c | 4 ++++
> fs/cifs/fscache.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++
> fs/cifs/fscache.h | 12 ++++++++++++
> 6 files changed, 92 insertions(+), 1 deletion(-)
> create mode 100644 fs/cifs/fscache.c
>
> Index: cifs-2.6/fs/cifs/Makefile
> ===================================================================
> --- cifs-2.6.orig/fs/cifs/Makefile
> +++ cifs-2.6/fs/cifs/Makefile
> @@ -12,4 +12,4 @@ cifs-$(CONFIG_CIFS_UPCALL) += cifs_spneg
>
> cifs-$(CONFIG_CIFS_DFS_UPCALL) += dns_resolve.o cifs_dfs_ref.o
>
> -cifs-$(CONFIG_CIFS_FSCACHE) += cache.o
> +cifs-$(CONFIG_CIFS_FSCACHE) += fscache.o cache.o
> Index: cifs-2.6/fs/cifs/cache.c
> ===================================================================
> --- cifs-2.6.orig/fs/cifs/cache.c
> +++ cifs-2.6/fs/cifs/cache.c
> @@ -51,3 +51,28 @@ void cifs_fscache_unregister(void)
> fscache_unregister_netfs(&cifs_fscache_netfs);
> }
>
> +/*
> + * Server object currently keyed by hostname
> + */
> +static uint16_t cifs_server_get_key(const void *cookie_netfs_data,
> + void *buffer, uint16_t maxbuf)
> +{
> + const struct TCP_Server_Info *server = cookie_netfs_data;
> + uint16_t len = strnlen(server->hostname, sizeof(server->hostname));
> +
Would a tuple of address/family/port be a better choice here? Imagine I
mount "foo" and then later mount "foor.bar.baz". If they are the same
address and only the UNC differs, then you won't get the benefit of
the cache, right?
> + if (len > maxbuf)
> + return 0;
> +
> + memcpy(buffer, server->hostname, len);
> +
> + return len;
> +}
> +
> +/*
> + * Server object for FS-Cache
> + */
> +const struct fscache_cookie_def cifs_fscache_server_index_def = {
> + .name = "CIFS.server",
> + .type = FSCACHE_COOKIE_TYPE_INDEX,
> + .get_key = cifs_server_get_key,
> +};
> Index: cifs-2.6/fs/cifs/cifsglob.h
> ===================================================================
> --- cifs-2.6.orig/fs/cifs/cifsglob.h
> +++ cifs-2.6/fs/cifs/cifsglob.h
> @@ -193,6 +193,9 @@ struct TCP_Server_Info {
> bool sec_mskerberos; /* supports legacy MS Kerberos */
> bool sec_kerberosu2u; /* supports U2U Kerberos */
> bool sec_ntlmssp; /* supports NTLMSSP */
> +#ifdef CONFIG_CIFS_FSCACHE
> + struct fscache_cookie *fscache; /* client index cache cookie */
> +#endif
> };
>
> /*
> Index: cifs-2.6/fs/cifs/connect.c
> ===================================================================
> --- cifs-2.6.orig/fs/cifs/connect.c
> +++ cifs-2.6/fs/cifs/connect.c
> @@ -48,6 +48,7 @@
> #include "nterr.h"
> #include "rfc1002pdu.h"
> #include "cn_cifs.h"
> +#include "fscache.h"
>
> #define CIFS_PORT 445
> #define RFC1001_PORT 139
> @@ -1453,6 +1454,8 @@ cifs_put_tcp_session(struct TCP_Server_I
> return;
> }
>
> + cifs_fscache_release_client_cookie(server);
> +
> list_del_init(&server->tcp_ses_list);
> write_unlock(&cifs_tcp_ses_lock);
>
> @@ -1572,6 +1575,7 @@ cifs_get_tcp_session(struct smb_vol *vol
> goto out_err;
> }
>
> + cifs_fscache_get_client_cookie(tcp_ses);
> /* thread spawned, put it on the list */
> write_lock(&cifs_tcp_ses_lock);
> list_add(&tcp_ses->tcp_ses_list, &cifs_tcp_ses_list);
> Index: cifs-2.6/fs/cifs/fscache.c
> ===================================================================
> --- /dev/null
> +++ cifs-2.6/fs/cifs/fscache.c
> @@ -0,0 +1,47 @@
> +/*
> + * fs/cifs/fscache.c - CIFS filesystem cache interface
> + *
> + * Copyright (c) 2010 Novell, Inc.
> + * Authors(s): Suresh Jayaraman (sjayaraman-l3A5Bk7waGM@public.gmane.org>
> + *
> + * This library is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU Lesser General Public License as published
> + * by the Free Software Foundation; either version 2.1 of the License, or
> + * (at your option) any later version.
> + *
> + * This library is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
> + * the GNU Lesser General Public License for more details.
> + *
> + * You should have received a copy of the GNU Lesser General Public License
> + * along with this library; if not, write to the Free Software
> + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
> + */
> +#include <linux/init.h>
> +#include <linux/kernel.h>
> +#include <linux/sched.h>
> +#include <linux/mm.h>
> +#include <linux/in6.h>
> +
> +#include "fscache.h"
> +#include "cifsglob.h"
> +#include "cifs_debug.h"
> +
> +void cifs_fscache_get_client_cookie(struct TCP_Server_Info *server)
> +{
> + server->fscache =
> + fscache_acquire_cookie(cifs_fscache_netfs.primary_index,
> + &cifs_fscache_server_index_def, server);
> + cFYI(1, "CIFS: get client cookie (0x%p/0x%p)\n",
> + server, server->fscache);
> +}
> +
> +void cifs_fscache_release_client_cookie(struct TCP_Server_Info *server)
> +{
> + cFYI(1, "CIFS: release client cookie (0x%p/0x%p)\n",
> + server, server->fscache);
> + fscache_relinquish_cookie(server->fscache, 0);
> + server->fscache = NULL;
> +}
> +
> Index: cifs-2.6/fs/cifs/fscache.h
> ===================================================================
> --- cifs-2.6.orig/fs/cifs/fscache.h
> +++ cifs-2.6/fs/cifs/fscache.h
> @@ -27,14 +27,26 @@
> #ifdef CONFIG_CIFS_FSCACHE
>
> extern struct fscache_netfs cifs_fscache_netfs;
> +extern const struct fscache_cookie_def cifs_fscache_server_index_def;
>
> extern int cifs_fscache_register(void);
> extern void cifs_fscache_unregister(void);
>
> +/*
> + * fscache.c
> + */
> +extern void cifs_fscache_get_client_cookie(struct TCP_Server_Info *);
> +extern void cifs_fscache_release_client_cookie(struct TCP_Server_Info *);
> +
> #else /* CONFIG_CIFS_FSCACHE */
> static inline int cifs_fscache_register(void) { return 0; }
> static inline void cifs_fscache_unregister(void) {}
>
> +static inline void
> +cifs_fscache_get_client_cookie(struct TCP_Server_Info *server) {}
> +static inline void
> +cifs_fscache_get_client_cookie(struct TCP_Server_Info *server); {}
> +
> #endif /* CONFIG_CIFS_FSCACHE */
>
> #endif /* _CIFS_FSCACHE_H */
> --
> To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
Jeff Layton <jlayton-vpEMnDpepFuMZCB2o+C8xQ@public.gmane.org>

View file

@ -0,0 +1,103 @@
From: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
Subject: Re: [RFC][PATCH 04/10] cifs: define server-level cache index objects
and register them with FS-Cache
Date: Wed, 23 Jun 2010 11:04:39 +0530
Lines: 61
Message-ID: <4C219CEF.5000003@suse.de>
References: <yes> <1277220198-3522-1-git-send-email-sjayaraman@suse.de> <20100622175214.4c56234f@corrin.poochiereds.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Cc: Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Jeff Layton <jlayton-vpEMnDpepFuMZCB2o+C8xQ@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Wed Jun 23 07:34:50 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1ORIbp-0002v4-3W
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Wed, 23 Jun 2010 07:34:49 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1750954Ab0FWFes (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Wed, 23 Jun 2010 01:34:48 -0400
Received: from cantor2.suse.de ([195.135.220.15]:58263 "EHLO mx2.suse.de"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1750809Ab0FWFes (ORCPT <rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>);
Wed, 23 Jun 2010 01:34:48 -0400
Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.221.2])
by mx2.suse.de (Postfix) with ESMTP id 8C18386A2E;
Wed, 23 Jun 2010 07:34:46 +0200 (CEST)
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.5) Gecko/20091130 SUSE/3.0.0-1.1.1 Thunderbird/3.0
In-Reply-To: <20100622175214.4c56234f-4QP7MXygkU+dMjc06nkz3ljfA9RmPOcC@public.gmane.org>
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1001998>
On 06/23/2010 03:22 AM, Jeff Layton wrote:
> On Tue, 22 Jun 2010 20:53:18 +0530
> Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org> wrote:
>
>> Define server-level cache index objects (as managed by TCP_ServerInfo structs).
>> Each server object is created in the CIFS top-level index object and is itself
>> an index into which superblock-level objects are inserted.
>>
>> Currently, the server objects are keyed by hostname.
>>
>> Signed-off-by: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
>> ---
>> fs/cifs/Makefile | 2 +-
>> fs/cifs/cache.c | 25 +++++++++++++++++++++++++
>> fs/cifs/cifsglob.h | 3 +++
>> fs/cifs/connect.c | 4 ++++
>> fs/cifs/fscache.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++
>> fs/cifs/fscache.h | 12 ++++++++++++
>> 6 files changed, 92 insertions(+), 1 deletion(-)
>> create mode 100644 fs/cifs/fscache.c
>>
>> Index: cifs-2.6/fs/cifs/Makefile
>> ===================================================================
>> --- cifs-2.6.orig/fs/cifs/Makefile
>> +++ cifs-2.6/fs/cifs/Makefile
>> @@ -12,4 +12,4 @@ cifs-$(CONFIG_CIFS_UPCALL) += cifs_spneg
>>
>> cifs-$(CONFIG_CIFS_DFS_UPCALL) += dns_resolve.o cifs_dfs_ref.o
>>
>> -cifs-$(CONFIG_CIFS_FSCACHE) += cache.o
>> +cifs-$(CONFIG_CIFS_FSCACHE) += fscache.o cache.o
>> Index: cifs-2.6/fs/cifs/cache.c
>> ===================================================================
>> --- cifs-2.6.orig/fs/cifs/cache.c
>> +++ cifs-2.6/fs/cifs/cache.c
>> @@ -51,3 +51,28 @@ void cifs_fscache_unregister(void)
>> fscache_unregister_netfs(&cifs_fscache_netfs);
>> }
>>
>> +/*
>> + * Server object currently keyed by hostname
>> + */
>> +static uint16_t cifs_server_get_key(const void *cookie_netfs_data,
>> + void *buffer, uint16_t maxbuf)
>> +{
>> + const struct TCP_Server_Info *server = cookie_netfs_data;
>> + uint16_t len = strnlen(server->hostname, sizeof(server->hostname));
>> +
>
> Would a tuple of address/family/port be a better choice here? Imagine I
> mount "foo" and then later mount "foor.bar.baz". If they are the same
> address and only the UNC differs, then you won't get the benefit of
> the cache, right?
>
Good point. I'll fix it up when I do a respin.
Thanks,
--
Suresh Jayaraman

View file

@ -0,0 +1,66 @@
From: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Subject: Re: [RFC][PATCH 03/10] cifs: register CIFS for caching
Date: Wed, 23 Jun 2010 17:51:17 +0100
Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley
Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United
Kingdom.
Registered in England and Wales under Company Registration No. 3798903
Lines: 20
Message-ID: <9603.1277311877@redhat.com>
References: <1277220189-3485-1-git-send-email-sjayaraman@suse.de> <yes>
Cc: dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
To: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Wed Jun 23 18:51:32 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1ORTAg-0008Bt-CT
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Wed, 23 Jun 2010 18:51:30 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1751915Ab0FWQv3 (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Wed, 23 Jun 2010 12:51:29 -0400
Received: from mx1.redhat.com ([209.132.183.28]:50923 "EHLO mx1.redhat.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1751520Ab0FWQv3 (ORCPT <rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>);
Wed, 23 Jun 2010 12:51:29 -0400
Received: from int-mx05.intmail.prod.int.phx2.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.18])
by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o5NGpLFc028550
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
Wed, 23 Jun 2010 12:51:21 -0400
Received: from redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1])
by int-mx05.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o5NGpHIG010890;
Wed, 23 Jun 2010 12:51:18 -0400
In-Reply-To: <1277220189-3485-1-git-send-email-sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.18
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1002219>
Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org> wrote:
> + rc = cifs_fscache_register();
> + if (rc)
> + goto out;
> +
> rc = cifs_init_inodecache();
> if (rc)
> goto out_clean_proc;
> @@ -949,8 +954,10 @@ init_cifs(void)
> cifs_destroy_mids();
> out_destroy_inodecache:
> cifs_destroy_inodecache();
> + cifs_fscache_unregister();
> out_clean_proc:
This is incorrect. You need to call cifs_fscache_unregister() if
cifs_init_inodecache() fails.
David

View file

@ -0,0 +1,59 @@
From: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Subject: Re: [RFC][PATCH 05/10] cifs: define superblock-level cache index objects and register them
Date: Wed, 23 Jun 2010 17:58:10 +0100
Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley
Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United
Kingdom.
Registered in England and Wales under Company Registration No. 3798903
Lines: 13
Message-ID: <9720.1277312290@redhat.com>
References: <1277220206-3559-1-git-send-email-sjayaraman@suse.de> <yes>
Cc: dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
To: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Wed Jun 23 18:58:19 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1ORTHG-0003Az-Ge
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Wed, 23 Jun 2010 18:58:18 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1751520Ab0FWQ6R (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Wed, 23 Jun 2010 12:58:17 -0400
Received: from mx1.redhat.com ([209.132.183.28]:62343 "EHLO mx1.redhat.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1751372Ab0FWQ6R (ORCPT <rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>);
Wed, 23 Jun 2010 12:58:17 -0400
Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11])
by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o5NGwDC2031683
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
Wed, 23 Jun 2010 12:58:13 -0400
Received: from redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1])
by int-mx01.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o5NGwAfq021298;
Wed, 23 Jun 2010 12:58:11 -0400
In-Reply-To: <1277220206-3559-1-git-send-email-sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.11
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1002223>
Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org> wrote:
> Define superblock-level cache index objects (managed by cifsTconInfo
> structs). Each superblock object is created in a server-level index object
> and in itself an index into which inode-level objects are inserted.
>
> Currently, the superblock objects are keyed by sharename.
Seems reasonable. Is there any way you can check that the share you are
looking at on a server is the same as the last time you looked? Can you
validate the root directory of the share in some way?
David

View file

@ -0,0 +1,61 @@
From: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Subject: Re: [RFC][PATCH 06/10] cifs: define inode-level cache object and register them
Date: Wed, 23 Jun 2010 18:02:53 +0100
Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley
Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United
Kingdom.
Registered in England and Wales under Company Registration No. 3798903
Lines: 15
Message-ID: <9822.1277312573@redhat.com>
References: <1277220214-3597-1-git-send-email-sjayaraman@suse.de> <yes>
Cc: dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
To: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Wed Jun 23 19:03:04 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1ORTLr-0007Bh-Cs
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Wed, 23 Jun 2010 19:03:03 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1752063Ab0FWRDB (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Wed, 23 Jun 2010 13:03:01 -0400
Received: from mx1.redhat.com ([209.132.183.28]:30823 "EHLO mx1.redhat.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1751804Ab0FWRDA (ORCPT <rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>);
Wed, 23 Jun 2010 13:03:00 -0400
Received: from int-mx03.intmail.prod.int.phx2.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.16])
by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o5NH2v0J030982
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
Wed, 23 Jun 2010 13:02:57 -0400
Received: from redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1])
by int-mx03.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o5NH2r9N014323;
Wed, 23 Jun 2010 13:02:54 -0400
In-Reply-To: <1277220214-3597-1-git-send-email-sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.16
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1002224>
Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org> wrote:
> Define inode-level data storage objects (managed by cifsInodeInfo structs).
> Each inode-level object is created in a super-block level object and is
> itself a data storage object in to which pages from the inode are stored.
>
> The inode object is keyed by UniqueId. The coherency data being used is
> LastWriteTime and the file size.
Isn't there a file creation time too?
I take it you don't support caching on files that are open for writing at this
time?
David

View file

@ -0,0 +1,59 @@
From: David Howells <dhowells@redhat.com>
Subject: Re: [RFC][PATCH 07/10] cifs: FS-Cache page management
Date: Wed, 23 Jun 2010 18:05:01 +0100
Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley
Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United
Kingdom.
Registered in England and Wales under Company Registration No. 3798903
Lines: 13
Message-ID: <9866.1277312701@redhat.com>
References: <1277220228-3635-1-git-send-email-sjayaraman@suse.de> <yes>
Cc: dhowells@redhat.com, Steve French <smfrench@gmail.com>,
linux-cifs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org
To: Suresh Jayaraman <sjayaraman@suse.de>
X-From: linux-fsdevel-owner@vger.kernel.org Wed Jun 23 19:05:19 2010
Return-path: <linux-fsdevel-owner@vger.kernel.org>
Envelope-to: lnx-linux-fsdevel@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-fsdevel-owner@vger.kernel.org>)
id 1ORTNz-0008Oj-Ho
for lnx-linux-fsdevel@lo.gmane.org; Wed, 23 Jun 2010 19:05:15 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1752145Ab0FWRFO (ORCPT <rfc822;lnx-linux-fsdevel@m.gmane.org>);
Wed, 23 Jun 2010 13:05:14 -0400
Received: from mx1.redhat.com ([209.132.183.28]:1689 "EHLO mx1.redhat.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1751804Ab0FWRFN (ORCPT <rfc822;linux-fsdevel@vger.kernel.org>);
Wed, 23 Jun 2010 13:05:13 -0400
Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12])
by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o5NH59sl011966
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
Wed, 23 Jun 2010 13:05:09 -0400
Received: from redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1])
by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o5NH52Jl022163;
Wed, 23 Jun 2010 13:05:03 -0400
In-Reply-To: <1277220228-3635-1-git-send-email-sjayaraman@suse.de>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.12
Sender: linux-fsdevel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-fsdevel.vger.kernel.org>
X-Mailing-List: linux-fsdevel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1002225>
Suresh Jayaraman <sjayaraman@suse.de> wrote:
> Takes care of invalidation and release of FS-Cache marked pages and also
> invalidation of the FsCache page flag when the inode is removed.
>
> Signed-off-by: Suresh Jayaraman <sjayaraman@suse.de>
Acked-by: David Howells <dhowells@redhat.com>
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

View file

@ -0,0 +1,54 @@
From: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Subject: Re: [RFC][PATCH 08/10] cifs: store pages into local cache
Date: Wed, 23 Jun 2010 18:06:12 +0100
Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley
Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United
Kingdom.
Registered in England and Wales under Company Registration No. 3798903
Lines: 8
Message-ID: <9890.1277312772@redhat.com>
References: <1277220240-3674-1-git-send-email-sjayaraman@suse.de> <yes>
Cc: dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
To: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Wed Jun 23 19:06:21 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1ORTP3-0000fp-01
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Wed, 23 Jun 2010 19:06:21 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1752403Ab0FWRGU (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Wed, 23 Jun 2010 13:06:20 -0400
Received: from mx1.redhat.com ([209.132.183.28]:63621 "EHLO mx1.redhat.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1751804Ab0FWRGT (ORCPT <rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>);
Wed, 23 Jun 2010 13:06:19 -0400
Received: from int-mx08.intmail.prod.int.phx2.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.21])
by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o5NH6FCB012081
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
Wed, 23 Jun 2010 13:06:15 -0400
Received: from redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1])
by int-mx08.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o5NH6CKG013414;
Wed, 23 Jun 2010 13:06:13 -0400
In-Reply-To: <1277220240-3674-1-git-send-email-sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.21
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1002226>
Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org> wrote:
> Store pages from an CIFS inode into the data storage object associated with
> that inode.
>
> Signed-off-by: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
Acked-by: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>

View file

@ -0,0 +1,53 @@
From: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Subject: Re: [RFC][PATCH 09/10] cifs: read pages from FS-Cache
Date: Wed, 23 Jun 2010 18:07:40 +0100
Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley
Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United
Kingdom.
Registered in England and Wales under Company Registration No. 3798903
Lines: 7
Message-ID: <9918.1277312860@redhat.com>
References: <1277220261-3717-1-git-send-email-sjayaraman@suse.de> <yes>
Cc: dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
To: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Wed Jun 23 19:07:51 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1ORTQR-0000nv-JF
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Wed, 23 Jun 2010 19:07:47 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1751708Ab0FWRHr (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Wed, 23 Jun 2010 13:07:47 -0400
Received: from mx1.redhat.com ([209.132.183.28]:34413 "EHLO mx1.redhat.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1750954Ab0FWRHq (ORCPT <rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>);
Wed, 23 Jun 2010 13:07:46 -0400
Received: from int-mx04.intmail.prod.int.phx2.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.17])
by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o5NH7h3Y005904
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
Wed, 23 Jun 2010 13:07:43 -0400
Received: from redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1])
by int-mx04.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o5NH7efR020683;
Wed, 23 Jun 2010 13:07:41 -0400
In-Reply-To: <1277220261-3717-1-git-send-email-sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.17
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1002227>
Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org> wrote:
> Read pages from a FS-Cache data storage object into a CIFS inode.
>
> Signed-off-by: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
Acked-by: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>

View file

@ -0,0 +1,58 @@
From: David Howells <dhowells@redhat.com>
Subject: Re: [RFC][PATCH 10/10] cifs: add mount option to enable local caching
Date: Wed, 23 Jun 2010 18:08:34 +0100
Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley
Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United
Kingdom.
Registered in England and Wales under Company Registration No. 3798903
Lines: 12
Message-ID: <9942.1277312914@redhat.com>
References: <1277220309-3757-1-git-send-email-sjayaraman@suse.de> <yes>
Cc: dhowells@redhat.com, Steve French <smfrench@gmail.com>,
linux-cifs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org
To: Suresh Jayaraman <sjayaraman@suse.de>
X-From: linux-kernel-owner@vger.kernel.org Wed Jun 23 19:09:22 2010
Return-path: <linux-kernel-owner@vger.kernel.org>
Envelope-to: glk-linux-kernel-3@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-kernel-owner@vger.kernel.org>)
id 1ORTRv-0002J8-2s
for glk-linux-kernel-3@lo.gmane.org; Wed, 23 Jun 2010 19:09:19 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1753275Ab0FWRIt (ORCPT <rfc822;glk-linux-kernel-3@m.gmane.org>);
Wed, 23 Jun 2010 13:08:49 -0400
Received: from mx1.redhat.com ([209.132.183.28]:6156 "EHLO mx1.redhat.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1753203Ab0FWRIr (ORCPT <rfc822;linux-kernel@vger.kernel.org>);
Wed, 23 Jun 2010 13:08:47 -0400
Received: from int-mx04.intmail.prod.int.phx2.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.17])
by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o5NH8dax006028
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
Wed, 23 Jun 2010 13:08:39 -0400
Received: from redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1])
by int-mx04.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o5NH8YmA020846;
Wed, 23 Jun 2010 13:08:36 -0400
In-Reply-To: <1277220309-3757-1-git-send-email-sjayaraman@suse.de>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.17
Sender: linux-kernel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-kernel.vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1002231>
Suresh Jayaraman <sjayaraman@suse.de> wrote:
> Add a mount option 'fsc' to enable local caching on CIFS.
>
> As the cifs-utils (userspace) changes are not done yet, this patch enables
> 'fsc' by default to assist testing.
>
> Signed-off-by: Suresh Jayaraman <sjayaraman@suse.de>
Acked-by: David Howells <dhowells@redhat.com>
(Give or take the debugging bit)

View file

@ -0,0 +1,100 @@
From: Scott Lovenberg <scott.lovenberg@gmail.com>
Subject: Re: [RFC][PATCH 10/10] cifs: add mount option to enable local caching
Date: Wed, 23 Jun 2010 14:32:24 -0400
Lines: 37
Message-ID: <4C225338.9010807@gmail.com>
References: <yes> <1277220309-3757-1-git-send-email-sjayaraman@suse.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Cc: Steve French <smfrench@gmail.com>, linux-cifs@vger.kernel.org,
linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
David Howells <dhowells@redhat.com>
To: Suresh Jayaraman <sjayaraman@suse.de>
X-From: linux-kernel-owner@vger.kernel.org Wed Jun 23 20:32:44 2010
Return-path: <linux-kernel-owner@vger.kernel.org>
Envelope-to: glk-linux-kernel-3@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-kernel-owner@vger.kernel.org>)
id 1ORUke-00020X-7B
for glk-linux-kernel-3@lo.gmane.org; Wed, 23 Jun 2010 20:32:44 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1753205Ab0FWScd (ORCPT <rfc822;glk-linux-kernel-3@m.gmane.org>);
Wed, 23 Jun 2010 14:32:33 -0400
Received: from mail-gx0-f174.google.com ([209.85.161.174]:50118 "EHLO
mail-gx0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1752380Ab0FWScb (ORCPT
<rfc822;linux-kernel@vger.kernel.org>);
Wed, 23 Jun 2010 14:32:31 -0400
Received: by gxk28 with SMTP id 28so317656gxk.19
for <multiple recipients>; Wed, 23 Jun 2010 11:32:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=gamma;
h=domainkey-signature:received:received:message-id:date:from
:user-agent:mime-version:to:cc:subject:references:in-reply-to
:content-type:content-transfer-encoding;
bh=iTBSrajJefJVTimpUcvJQmptYefXJDrz9ZyZgxnMvzA=;
b=DOZLux9YGwNIWknqofz5rMltvopOT+kRgPsHIYw8Z7Uhh9gR5YAD4V6kKmv1SIaWoo
uXjNwY+IPIiD4f4OwwlpwJTd4B7PkBCDIlOkwVcvvS3F6qr6WbXBd0nRuRiFGMwONU3E
MqTAWDDwIXLVURr1t+n3MFrKwKj5b7pZT5fHw=
DomainKey-Signature: a=rsa-sha1; c=nofws;
d=gmail.com; s=gamma;
h=message-id:date:from:user-agent:mime-version:to:cc:subject
:references:in-reply-to:content-type:content-transfer-encoding;
b=pTsfPMlTDpE3Oi2w9V3eE2ohOeBEloXhgElmCwGEenBegF7ZhIyoga6tyRJqQ922ws
oyxLXSORpOuPJRoIBRXfzae3KXkgKT0eLDjxQNTdS7Jbe+vcJ604sANFcnxBsJ51fThT
R/wXt7LiG/T6H4DUpcN7aUjtzlq9JgC2JQ/ws=
Received: by 10.224.43.197 with SMTP id x5mr5243425qae.127.1277317950764;
Wed, 23 Jun 2010 11:32:30 -0700 (PDT)
Received: from [192.168.0.2] ([64.9.41.61])
by mx.google.com with ESMTPS id 15sm3010007qcg.2.2010.06.23.11.32.25
(version=TLSv1/SSLv3 cipher=RC4-MD5);
Wed, 23 Jun 2010 11:32:26 -0700 (PDT)
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.10) Gecko/20100512 Lightning/1.0b1 Thunderbird/3.0.5 ThunderBrowse/3.2.8.1
In-Reply-To: <1277220309-3757-1-git-send-email-sjayaraman@suse.de>
Sender: linux-kernel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-kernel.vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1002258>
On 6/22/2010 11:25 AM, Suresh Jayaraman wrote:
> Add a mount option 'fsc' to enable local caching on CIFS.
>
> As the cifs-utils (userspace) changes are not done yet, this patch enables
> 'fsc' by default to assist testing.
>
[...]
> @@ -1332,6 +1336,8 @@ cifs_parse_mount_options(char *options, const char *devname,
> printk(KERN_WARNING "CIFS: Mount option noac not "
> "supported. Instead set "
> "/proc/fs/cifs/LookupCacheEnabled to 0\n");
> + } else if (strnicmp(data, "fsc", 3) == 0) {
> + vol->fsc = true;
> } else
> printk(KERN_WARNING "CIFS: Unknown mount option %s\n",
> data);
> @@ -2405,6 +2411,8 @@ static void setup_cifs_sb(struct smb_vol *pvolume_info,
> cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_OVERR_GID;
> if (pvolume_info->dynperm)
> cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_DYNPERM;
> + if (pvolume_info->fsc)
> + cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_FSCACHE;
> if (pvolume_info->direct_io) {
> cFYI(1, "mounting share using direct i/o");
> cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_DIRECT_IO;
>
I reworked the CIFS mount option parsing a while back; I'm not sure
whether that patch was going to be in the 2.6.35 tree or not (the window
just opened, didn't it?).
Jeff, Steve, can you confirm if that patch is going to be in 2.6.35?
Patch refs: http://patchwork.ozlabs.org/patch/53059/ and
http://patchwork.ozlabs.org/patch/53674/

View file

@ -0,0 +1,90 @@
From: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
Subject: Re: [RFC][PATCH 10/10] cifs: add mount option to enable local caching
Date: Fri, 25 Jun 2010 16:18:12 +0530
Lines: 47
Message-ID: <4C24896C.4000903@suse.de>
References: <yes> <1277220309-3757-1-git-send-email-sjayaraman@suse.de> <4C225338.9010807@gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Cc: Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Scott Lovenberg <scott.lovenberg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Fri Jun 25 12:48:27 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1OS6SO-0003QF-NW
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Fri, 25 Jun 2010 12:48:25 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1753965Ab0FYKsX (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Fri, 25 Jun 2010 06:48:23 -0400
Received: from cantor.suse.de ([195.135.220.2]:46395 "EHLO mx1.suse.de"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1752612Ab0FYKsW (ORCPT <rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>);
Fri, 25 Jun 2010 06:48:22 -0400
Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.221.2])
(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
(No client certificate requested)
by mx1.suse.de (Postfix) with ESMTP id 60CED6CB00;
Fri, 25 Jun 2010 12:48:21 +0200 (CEST)
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.5) Gecko/20091130 SUSE/3.0.0-1.1.1 Thunderbird/3.0
In-Reply-To: <4C225338.9010807-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1002912>
On 06/24/2010 12:02 AM, Scott Lovenberg wrote:
> On 6/22/2010 11:25 AM, Suresh Jayaraman wrote:
>> Add a mount option 'fsc' to enable local caching on CIFS.
>>
>> As the cifs-utils (userspace) changes are not done yet, this patch
>> enables
>> 'fsc' by default to assist testing.
>>
> [...]
>> @@ -1332,6 +1336,8 @@ cifs_parse_mount_options(char *options, const
>> char *devname,
>> printk(KERN_WARNING "CIFS: Mount option noac not "
>> "supported. Instead set "
>> "/proc/fs/cifs/LookupCacheEnabled to 0\n");
>> + } else if (strnicmp(data, "fsc", 3) == 0) {
>> + vol->fsc = true;
>> } else
>> printk(KERN_WARNING "CIFS: Unknown mount option %s\n",
>> data);
>> @@ -2405,6 +2411,8 @@ static void setup_cifs_sb(struct smb_vol
>> *pvolume_info,
>> cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_OVERR_GID;
>> if (pvolume_info->dynperm)
>> cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_DYNPERM;
>> + if (pvolume_info->fsc)
>> + cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_FSCACHE;
>> if (pvolume_info->direct_io) {
>> cFYI(1, "mounting share using direct i/o");
>> cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_DIRECT_IO;
>>
> I reworked the CIFS mount option parsing a while back; I'm not sure
> whether that patch was going to be in the 2.6.35 tree or not (the window
> just opened, didn't it?).
Not a problem, I could redo this patch alone when the reworked option
parsing patches get in.
> Jeff, Steve, can you confirm if that patch is going to be in 2.6.35?
>
> Patch refs: http://patchwork.ozlabs.org/patch/53059/ and
> http://patchwork.ozlabs.org/patch/53674/
>
Thanks,
--
Suresh Jayaraman

View file

@ -0,0 +1,65 @@
From: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
Subject: Re: [RFC][PATCH 06/10] cifs: define inode-level cache object and
register them
Date: Fri, 25 Jun 2010 18:20:14 +0530
Lines: 24
Message-ID: <4C24A606.5040001@suse.de>
References: <1277220214-3597-1-git-send-email-sjayaraman@suse.de> <yes> <9822.1277312573@redhat.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Cc: Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
To: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Fri Jun 25 14:50:26 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1OS8MR-0007EU-OS
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Fri, 25 Jun 2010 14:50:24 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1754607Ab0FYMuX (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Fri, 25 Jun 2010 08:50:23 -0400
Received: from cantor2.suse.de ([195.135.220.15]:38716 "EHLO mx2.suse.de"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1753675Ab0FYMuW (ORCPT <rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>);
Fri, 25 Jun 2010 08:50:22 -0400
Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.221.2])
by mx2.suse.de (Postfix) with ESMTP id B05E686A2E;
Fri, 25 Jun 2010 14:50:21 +0200 (CEST)
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.5) Gecko/20091130 SUSE/3.0.0-1.1.1 Thunderbird/3.0
In-Reply-To: <9822.1277312573-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1002946>
On 06/23/2010 10:32 PM, David Howells wrote:
> Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org> wrote:
>
>> Define inode-level data storage objects (managed by cifsInodeInfo structs).
>> Each inode-level object is created in a super-block level object and is
>> itself a data storage object in to which pages from the inode are stored.
>>
>> The inode object is keyed by UniqueId. The coherency data being used is
>> LastWriteTime and the file size.
>
> Isn't there a file creation time too?
I think the creation time is currently being ignored as we won't be able
to accomodate in POSIX stat struct.
> I take it you don't support caching on files that are open for writing at this
> time?
>
Yes.
--
Suresh Jayaraman

View file

@ -0,0 +1,58 @@
From: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Subject: Re: [RFC][PATCH 06/10] cifs: define inode-level cache object and register them
Date: Fri, 25 Jun 2010 13:55:49 +0100
Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley
Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United
Kingdom.
Registered in England and Wales under Company Registration No. 3798903
Lines: 12
Message-ID: <22697.1277470549@redhat.com>
References: <4C24A606.5040001@suse.de> <1277220214-3597-1-git-send-email-sjayaraman@suse.de> <yes> <9822.1277312573@redhat.com>
Cc: dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
To: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Fri Jun 25 14:56:04 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1OS8Rw-0002tq-3k
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Fri, 25 Jun 2010 14:56:04 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1753622Ab0FYM4B (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Fri, 25 Jun 2010 08:56:01 -0400
Received: from mx1.redhat.com ([209.132.183.28]:50162 "EHLO mx1.redhat.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1752535Ab0FYM4B (ORCPT <rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>);
Fri, 25 Jun 2010 08:56:01 -0400
Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11])
by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o5PCtqOd018091
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
Fri, 25 Jun 2010 08:55:52 -0400
Received: from redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1])
by int-mx01.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o5PCtn4G016466;
Fri, 25 Jun 2010 08:55:51 -0400
In-Reply-To: <4C24A606.5040001-l3A5Bk7waGM@public.gmane.org>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.11
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1002949>
Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org> wrote:
> I think the creation time is currently being ignored as we won't be able
> to accomodate in POSIX stat struct.
The FS-Cache interface doesn't use the POSIX stat struct, but it could be
really useful to save it and use it for cache coherency inside the kernel.
Out of interest, what does Samba do when it comes to generating a creation time
for UNIX where one does not exist?
David

View file

@ -0,0 +1,67 @@
From: David Howells <dhowells@redhat.com>
Subject: Re: [RFC][PATCH 05/10] cifs: define superblock-level cache index objects and register them
Date: Fri, 25 Jun 2010 13:58:33 +0100
Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley
Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United
Kingdom.
Registered in England and Wales under Company Registration No. 3798903
Lines: 21
Message-ID: <22746.1277470713@redhat.com>
References: <4C24A4A0.90408@suse.de> <1277220206-3559-1-git-send-email-sjayaraman@suse.de> <yes> <9720.1277312290@redhat.com>
Cc: dhowells@redhat.com, Steve French <smfrench@gmail.com>,
linux-cifs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org
To: Suresh Jayaraman <sjayaraman@suse.de>
X-From: linux-fsdevel-owner@vger.kernel.org Fri Jun 25 15:02:20 2010
Return-path: <linux-fsdevel-owner@vger.kernel.org>
Envelope-to: lnx-linux-fsdevel@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with smtp (Exim 4.69)
(envelope-from <linux-fsdevel-owner@vger.kernel.org>)
id 1OS8Xz-000628-FG
for lnx-linux-fsdevel@lo.gmane.org; Fri, 25 Jun 2010 15:02:19 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1755357Ab0FYM6k (ORCPT <rfc822;lnx-linux-fsdevel@m.gmane.org>);
Fri, 25 Jun 2010 08:58:40 -0400
Received: from mx1.redhat.com ([209.132.183.28]:50417 "EHLO mx1.redhat.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1754086Ab0FYM6j (ORCPT <rfc822;linux-fsdevel@vger.kernel.org>);
Fri, 25 Jun 2010 08:58:39 -0400
Received: from int-mx04.intmail.prod.int.phx2.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.17])
by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o5PCwa7Z005113
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
Fri, 25 Jun 2010 08:58:36 -0400
Received: from redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1])
by int-mx04.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o5PCwXVB011094;
Fri, 25 Jun 2010 08:58:34 -0400
In-Reply-To: <4C24A4A0.90408@suse.de>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.17
Sender: linux-fsdevel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-fsdevel.vger.kernel.org>
X-Mailing-List: linux-fsdevel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1002951>
Suresh Jayaraman <sjayaraman@suse.de> wrote:
> Also, considering the UNC name of the resource (//server/share) may not
> be a good idea too as the cache will not be used when for e.g. IPaddress
> is used to mount.
You could convert the UNC name to an IP address, and just use that as your
key.
> > validate the root directory of the share in some way?
>
> I don't know if there is a way to do this.
Is there an inode number or something? Even the creation time might do.
David
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

View file

@ -0,0 +1,90 @@
From: Jeff Layton <jlayton-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>
Subject: Re: [RFC][PATCH 06/10] cifs: define inode-level cache object and
register them
Date: Fri, 25 Jun 2010 12:53:06 -0400
Lines: 36
Message-ID: <20100625125306.7f9b1966@tlielax.poochiereds.net>
References: <4C24A606.5040001@suse.de>
<1277220214-3597-1-git-send-email-sjayaraman@suse.de>
<yes>
<9822.1277312573@redhat.com>
<22697.1277470549@redhat.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Cc: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>,
Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
samba-technical-w/Ol4Ecudpl8XjKLYN78aQ@public.gmane.org
To: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Fri Jun 25 18:53:12 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1OSC9P-0005Eb-SU
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Fri, 25 Jun 2010 18:53:12 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S932199Ab0FYQxK (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Fri, 25 Jun 2010 12:53:10 -0400
Received: from cdptpa-omtalb.mail.rr.com ([75.180.132.122]:53512 "EHLO
cdptpa-omtalb.mail.rr.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S932187Ab0FYQxJ (ORCPT
<rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>); Fri, 25 Jun 2010 12:53:09 -0400
X-Authority-Analysis: v=1.0 c=1 a=iVNVO0OCT3kA:10 a=yQWWgrYGNuUA:10 a=kj9zAlcOel0A:10 a=20KFwNOVAAAA:8 a=hGzw-44bAAAA:8 a=f0L6POiToRdS6aViIA4A:9 a=tdNtT7bw1iHNm6ggrCkIte35EhAA:4 a=CjuIK1q_8ugA:10 a=jEp0ucaQiEUA:10 a=0kPLrQdw3YYA:10 a=dowx1zmaLagA:10 a=00U40p1LBqVLw4jT:21 a=gh7LVOPznGai4vo_:21
X-Cloudmark-Score: 0
X-Originating-IP: 71.70.153.3
Received: from [71.70.153.3] ([71.70.153.3:42266] helo=mail.poochiereds.net)
by cdptpa-oedge01.mail.rr.com (envelope-from <jlayton-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>)
(ecelerity 2.2.2.39 r()) with ESMTP
id 2D/E0-24471-3FED42C4; Fri, 25 Jun 2010 16:53:08 +0000
Received: from tlielax.poochiereds.net (tlielax.poochiereds.net [192.168.1.3])
by mail.poochiereds.net (Postfix) with ESMTPS id E9B19580FA;
Fri, 25 Jun 2010 12:53:06 -0400 (EDT)
In-Reply-To: <22697.1277470549-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
X-Mailer: Claws Mail 3.7.6 (GTK+ 2.20.1; x86_64-redhat-linux-gnu)
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1003033>
On Fri, 25 Jun 2010 13:55:49 +0100
David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> wrote:
> Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org> wrote:
>
> > I think the creation time is currently being ignored as we won't be able
> > to accomodate in POSIX stat struct.
>
> The FS-Cache interface doesn't use the POSIX stat struct, but it could be
> really useful to save it and use it for cache coherency inside the kernel.
>
> Out of interest, what does Samba do when it comes to generating a creation time
> for UNIX where one does not exist?
>
(cc'ing samba-technical since we're talking about the create time)
Looks like it mostly uses the ctime. IMO, the mtime would be a better
choice since it changes less frequently, but I don't guess that it
matters very much.
I have a few patches that make the cifs_iget code do more stringent
checks. One of those makes it use the create time like an i_generation
field to guard against matching inodes that have the same number but
that have undergone a delete/create cycle. They need a bit more testing
but I'm planning to post them in time for 2.6.36.
Because of how samba generates this number, it could be somewhat
problematic to do this. What may save us though is that Linux<->Samba
mostly uses unix extensions unless someone has specifically disabled
them on either end. The unix extension calls don't generally send any
sort of create time field, so we can't rely on it in those codepaths
anyway.
--
Jeff Layton <jlayton-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>

View file

@ -0,0 +1,60 @@
From: David Howells <dhowells@redhat.com>
Subject: Re: [RFC][PATCH 06/10] cifs: define inode-level cache object and register them
Date: Fri, 25 Jun 2010 22:46:38 +0100
Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley
Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United
Kingdom.
Registered in England and Wales under Company Registration No. 3798903
Lines: 13
Message-ID: <18628.1277502398@redhat.com>
References: <20100625125306.7f9b1966@tlielax.poochiereds.net> <4C24A606.5040001@suse.de> <1277220214-3597-1-git-send-email-sjayaraman@suse.de> <yes> <9822.1277312573@redhat.com> <22697.1277470549@redhat.com>
Cc: dhowells@redhat.com, Suresh Jayaraman <sjayaraman@suse.de>,
Steve French <smfrench@gmail.com>, linux-cifs@vger.kernel.org,
linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
samba-technical@lists.samba.org
To: Jeff Layton <jlayton@samba.org>
X-From: linux-kernel-owner@vger.kernel.org Fri Jun 25 23:47:07 2010
Return-path: <linux-kernel-owner@vger.kernel.org>
Envelope-to: glk-linux-kernel-3@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-kernel-owner@vger.kernel.org>)
id 1OSGjo-0006q8-ME
for glk-linux-kernel-3@lo.gmane.org; Fri, 25 Jun 2010 23:47:05 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S932250Ab0FYVqv (ORCPT <rfc822;glk-linux-kernel-3@m.gmane.org>);
Fri, 25 Jun 2010 17:46:51 -0400
Received: from mx1.redhat.com ([209.132.183.28]:55406 "EHLO mx1.redhat.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S932088Ab0FYVqs (ORCPT <rfc822;linux-kernel@vger.kernel.org>);
Fri, 25 Jun 2010 17:46:48 -0400
Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12])
by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o5PLkhIG005974
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
Fri, 25 Jun 2010 17:46:43 -0400
Received: from redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1])
by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o5PLkd77017768;
Fri, 25 Jun 2010 17:46:40 -0400
In-Reply-To: <20100625125306.7f9b1966@tlielax.poochiereds.net>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.12
Sender: linux-kernel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-kernel.vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1003142>
Jeff Layton <jlayton@samba.org> wrote:
> Looks like it mostly uses the ctime. IMO, the mtime would be a better
> choice since it changes less frequently, but I don't guess that it
> matters very much.
I'd've thought mtime changes more frequently since that's altered when data is
written. ctime is changed when attributes are changed.
Note that Ext4 appears to have a file creation time field in its inode
(struct ext4_inode::i_crtime[_extra]). Can Samba be made to use that?
David

View file

@ -0,0 +1,105 @@
From: Jeff Layton <jlayton@samba.org>
Subject: Re: [RFC][PATCH 06/10] cifs: define inode-level cache object and
register them
Date: Fri, 25 Jun 2010 18:26:51 -0400
Lines: 30
Message-ID: <20100625182651.36800d06@tlielax.poochiereds.net>
References: <20100625125306.7f9b1966@tlielax.poochiereds.net>
<4C24A606.5040001@suse.de>
<1277220214-3597-1-git-send-email-sjayaraman@suse.de> <yes>
<9822.1277312573@redhat.com> <22697.1277470549@redhat.com>
<18628.1277502398@redhat.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Cc: linux-cifs@vger.kernel.org, samba-technical@lists.samba.org,
linux-kernel@vger.kernel.org, Steve French <smfrench@gmail.com>,
linux-fsdevel@vger.kernel.org
To: David Howells <dhowells@redhat.com>
X-From: samba-technical-bounces@lists.samba.org Sat Jun 26 00:27:01 2010
Return-path: <samba-technical-bounces@lists.samba.org>
Envelope-to: gnsi-samba-technical@m.gmane.org
Received: from fn.samba.org ([216.83.154.106] helo=lists.samba.org)
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <samba-technical-bounces@lists.samba.org>)
id 1OSHMS-0003Yl-G8
for gnsi-samba-technical@m.gmane.org; Sat, 26 Jun 2010 00:27:01 +0200
Received: from fn.samba.org (localhost [127.0.0.1])
by lists.samba.org (Postfix) with ESMTP id 8919DAD2B8;
Fri, 25 Jun 2010 16:26:57 -0600 (MDT)
X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on fn.samba.org
X-Spam-Level:
X-Spam-Status: No, score=-1.7 required=3.8 tests=AWL,BAYES_00,SPF_NEUTRAL
autolearn=no version=3.2.5
X-Original-To: samba-technical@lists.samba.org
Delivered-To: samba-technical@lists.samba.org
Received: from cdptpa-omtalb.mail.rr.com (cdptpa-omtalb.mail.rr.com
[75.180.132.122])
by lists.samba.org (Postfix) with ESMTP id ECB66AD220
for <samba-technical@lists.samba.org>;
Fri, 25 Jun 2010 16:26:51 -0600 (MDT)
X-Authority-Analysis: v=1.0 c=1 a=iVNVO0OCT3kA:10 a=yQWWgrYGNuUA:10
a=kj9zAlcOel0A:10 a=20KFwNOVAAAA:8 a=hGzw-44bAAAA:8
a=AraS79FXNJ3kHilSTm4A:9 a=3STw0N-n4mJG0pydffwA:7
a=0uwppTlTaQ5HiYOalIavAxwTlvEA:4 a=CjuIK1q_8ugA:10
a=jEp0ucaQiEUA:10 a=dowx1zmaLagA:10
X-Cloudmark-Score: 0
X-Originating-IP: 71.70.153.3
Received: from [71.70.153.3] ([71.70.153.3:55553] helo=mail.poochiereds.net)
by cdptpa-oedge01.mail.rr.com (envelope-from <jlayton@samba.org>)
(ecelerity 2.2.2.39 r()) with ESMTP
id 78/FA-24471-C2D252C4; Fri, 25 Jun 2010 22:26:53 +0000
Received: from tlielax.poochiereds.net (tlielax.poochiereds.net [192.168.1.3])
by mail.poochiereds.net (Postfix) with ESMTPS id 68F07580FA;
Fri, 25 Jun 2010 18:26:52 -0400 (EDT)
In-Reply-To: <18628.1277502398@redhat.com>
X-Mailer: Claws Mail 3.7.6 (GTK+ 2.20.1; x86_64-redhat-linux-gnu)
X-BeenThere: samba-technical@lists.samba.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "Discussions on Samba internals. For general questions please
subscribe to the list samba@samba.org"
<samba-technical.lists.samba.org>
List-Unsubscribe: <https://lists.samba.org/mailman/options/samba-technical>,
<mailto:samba-technical-request@lists.samba.org?subject=unsubscribe>
List-Archive: <http://lists.samba.org/pipermail/samba-technical>
List-Post: <mailto:samba-technical@lists.samba.org>
List-Help: <mailto:samba-technical-request@lists.samba.org?subject=help>
List-Subscribe: <https://lists.samba.org/mailman/listinfo/samba-technical>,
<mailto:samba-technical-request@lists.samba.org?subject=subscribe>
Sender: samba-technical-bounces@lists.samba.org
Errors-To: samba-technical-bounces@lists.samba.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1003148>
On Fri, 25 Jun 2010 22:46:38 +0100
David Howells <dhowells@redhat.com> wrote:
> Jeff Layton <jlayton@samba.org> wrote:
>
> > Looks like it mostly uses the ctime. IMO, the mtime would be a better
> > choice since it changes less frequently, but I don't guess that it
> > matters very much.
>
> I'd've thought mtime changes more frequently since that's altered when data is
> written. ctime is changed when attributes are changed.
>
IIUC, updating mtime for a write is also an attribute change, and that
affects ctime. According to the stat(2) manpage:
The field st_ctime is changed by writing or by setting inode informa-
tion (i.e., owner, group, link count, mode, etc.).
> Note that Ext4 appears to have a file creation time field in its inode
> (struct ext4_inode::i_crtime[_extra]). Can Samba be made to use that?
>
Is it exposed to userspace in any (standard) way? It would be handy to
have that. While we're wishing...it might also be nice to have a
standard way to get at the i_generation from userspace too.
--
Jeff Layton <jlayton@samba.org>

View file

@ -0,0 +1,65 @@
From: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Subject: Re: [RFC][PATCH 06/10] cifs: define inode-level cache object and register them
Date: Sat, 26 Jun 2010 00:04:28 +0100
Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley
Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United
Kingdom.
Registered in England and Wales under Company Registration No. 3798903
Lines: 18
Message-ID: <20123.1277507068@redhat.com>
References: <20100625182651.36800d06@tlielax.poochiereds.net> <20100625125306.7f9b1966@tlielax.poochiereds.net> <4C24A606.5040001@suse.de> <1277220214-3597-1-git-send-email-sjayaraman@suse.de> <yes> <9822.1277312573@redhat.com> <22697.1277470549@redhat.com> <18628.1277502398@redhat.com>
Cc: dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>,
Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
samba-technical-w/Ol4Ecudpl8XjKLYN78aQ@public.gmane.org
To: Jeff Layton <jlayton-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Sat Jun 26 01:04:45 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1OSHww-0006Jk-NV
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Sat, 26 Jun 2010 01:04:43 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1751807Ab0FYXEl (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Fri, 25 Jun 2010 19:04:41 -0400
Received: from mx1.redhat.com ([209.132.183.28]:62977 "EHLO mx1.redhat.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1752149Ab0FYXEl (ORCPT <rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>);
Fri, 25 Jun 2010 19:04:41 -0400
Received: from int-mx04.intmail.prod.int.phx2.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.17])
by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o5PN4X40004498
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
Fri, 25 Jun 2010 19:04:34 -0400
Received: from redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1])
by int-mx04.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o5PN4Sld008220;
Fri, 25 Jun 2010 19:04:30 -0400
In-Reply-To: <20100625182651.36800d06-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.17
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1003153>
Jeff Layton <jlayton-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org> wrote:
> IIUC, updating mtime for a write is also an attribute change, and that
> affects ctime. According to the stat(2) manpage:
You're right. Okay, ctime is the more frequently changed.
> > Note that Ext4 appears to have a file creation time field in its inode
> > (struct ext4_inode::i_crtime[_extra]). Can Samba be made to use that?
>
> Is it exposed to userspace in any (standard) way? It would be handy to
> have that. While we're wishing...it might also be nice to have a
> standard way to get at the i_generation from userspace too.
Not at present, but it's something that could be exported by ioctl() or
getxattr().
David

View file

@ -0,0 +1,122 @@
From: Steve French <smfrench@gmail.com>
Subject: Re: [RFC][PATCH 06/10] cifs: define inode-level cache object and
register them
Date: Fri, 25 Jun 2010 18:05:30 -0500
Lines: 51
Message-ID: <AANLkTilOTrHLvLv4XWYZO6xCnYZgYT7gO2M-oKZ6VvqM@mail.gmail.com>
References: <20100625125306.7f9b1966@tlielax.poochiereds.net>
<4C24A606.5040001@suse.de>
<1277220214-3597-1-git-send-email-sjayaraman@suse.de>
<9822.1277312573@redhat.com>
<22697.1277470549@redhat.com>
<18628.1277502398@redhat.com>
<20100625182651.36800d06@tlielax.poochiereds.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: QUOTED-PRINTABLE
Cc: David Howells <dhowells@redhat.com>,
Suresh Jayaraman <sjayaraman@suse.de>,
linux-cifs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org, samba-technical@lists.samba.org,
Jeff Layton <jlayton@redhat.com>
To: Jeff Layton <jlayton@samba.org>,
"Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>,
Mingming Cao <mcao@us.ibm.com>
X-From: linux-kernel-owner@vger.kernel.org Sat Jun 26 01:05:41 2010
Return-path: <linux-kernel-owner@vger.kernel.org>
Envelope-to: glk-linux-kernel-3@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-kernel-owner@vger.kernel.org>)
id 1OSHxs-0006a8-BA
for glk-linux-kernel-3@lo.gmane.org; Sat, 26 Jun 2010 01:05:40 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1756188Ab0FYXFd convert rfc822-to-quoted-printable (ORCPT
<rfc822;glk-linux-kernel-3@m.gmane.org>);
Fri, 25 Jun 2010 19:05:33 -0400
Received: from mail-qw0-f46.google.com ([209.85.216.46]:51369 "EHLO
mail-qw0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1751575Ab0FYXFb convert rfc822-to-8bit (ORCPT
<rfc822;linux-kernel@vger.kernel.org>);
Fri, 25 Jun 2010 19:05:31 -0400
Received: by qwi4 with SMTP id 4so742644qwi.19
for <multiple recipients>; Fri, 25 Jun 2010 16:05:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=gamma;
h=domainkey-signature:mime-version:received:received:in-reply-to
:references:date:message-id:subject:from:to:cc:content-type
:content-transfer-encoding;
bh=6wKQkGOEeUGN4oPR3Nm4SRxtJr/EBwN8ENmpLnfdCDU=;
b=X7L6W0MtpQeW/4iBuj+oDlcP2yCJ3qwUs9lHBq1fRW6WdYblHXjmaN8o++3GDPLAg5
0MD07zxbYTGXRSrgCjCrGVm0tT88/6hY2a/rB8g68h/Qso2sIHa7B1iIN8JRR4pPWle0
sVjp9Xy/bQn2e0uE481Ii1TLHuWYA/QDXZreU=
DomainKey-Signature: a=rsa-sha1; c=nofws;
d=gmail.com; s=gamma;
h=mime-version:in-reply-to:references:date:message-id:subject:from:to
:cc:content-type:content-transfer-encoding;
b=B+7qQvdOpN5a/KCRrDbssKZX8D3SnP73VMHd9RpkqP9nCHCmSLAgbeH03+/m6CLVAo
G+NKWqWtknwPBkYqT/bdP2XEak1yr+0rjOqjUaNvaT7AhzsyHEJBkaNnsbS3qaRy39OP
S7OkAyHfmgdeNAHkKnKRF73hfpvgAqR9X4bn8=
Received: by 10.224.59.223 with SMTP id m31mr1130670qah.63.1277507130411; Fri,
25 Jun 2010 16:05:30 -0700 (PDT)
Received: by 10.229.46.136 with HTTP; Fri, 25 Jun 2010 16:05:30 -0700 (PDT)
In-Reply-To: <20100625182651.36800d06@tlielax.poochiereds.net>
Sender: linux-kernel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-kernel.vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1003154>
On Fri, Jun 25, 2010 at 5:26 PM, Jeff Layton <jlayton@samba.org> wrote:
>
> On Fri, 25 Jun 2010 22:46:38 +0100
> David Howells <dhowells@redhat.com> wrote:
>
> > Jeff Layton <jlayton@samba.org> wrote:
> >
> > > Looks like it mostly uses the ctime. IMO, the mtime would be a be=
tter
> > > choice since it changes less frequently, but I don't guess that i=
t
> > > matters very much.
> >
> > I'd've thought mtime changes more frequently since that's altered w=
hen data is
> > written. =A0ctime is changed when attributes are changed.
> >
>
> IIUC, updating mtime for a write is also an attribute change, and tha=
t
> affects ctime. According to the stat(2) manpage:
>
> =A0 =A0 =A0 The field st_ctime is changed by writing or by setting =A0=
inode =A0informa-
> =A0 =A0 =A0 tion (i.e., owner, group, link count, mode, etc.).
>
> > Note that Ext4 appears to have a file creation time field in its in=
ode
> > (struct ext4_inode::i_crtime[_extra]). =A0Can Samba be made to use =
that?
> >
>
> Is it exposed to userspace in any (standard) way? It would be handy t=
o
> have that. While we're wishing...it might also be nice to have a
> standard way to get at the i_generation from userspace too.
>
Yes - I have talked with MingMing and Aneesh about those (NFS may
someday be able to use those too).=A0 An obstacle in the past had been
that samba server stores its own fake creation time in an ndr encoded
xattr which complicates things.
MingMing/Annesh -
Xattr or other way to get at birth time?
--
Thanks,
Steve

View file

@ -0,0 +1,174 @@
From: Mingming Cao <mcao@us.ibm.com>
Subject: Re: [RFC][PATCH 06/10] cifs: define inode-level cache object and
register them
Date: Fri, 25 Jun 2010 17:52:24 -0700
Lines: 92
Message-ID: <OFB55E8EC7.E8DD23D5-ON8725774E.0004921E-8825774E.0004CC31@us.ibm.com>
References: <20100625125306.7f9b1966@tlielax.poochiereds.net> <4C24A606.5040001@suse.de>
<1277220214-3597-1-git-send-email-sjayaraman@suse.de> <9822.1277312573@redhat.com>
<22697.1277470549@redhat.com> <18628.1277502398@redhat.com> <20100625182651.36800d06@tlielax.poochiereds.net>
<AANLkTilOTrHLvLv4XWYZO6xCnYZgYT7gO2M-oKZ6VvqM@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: linux-cifs@vger.kernel.org, Jeff Layton <jlayton@redhat.com>,
samba-technical@lists.samba.org, linux-kernel@vger.kernel.org,
David Howells <dhowells@redhat.com>, linux-fsdevel@vger.kernel.org,
"Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
To: Steve French <smfrench@gmail.com>
X-From: samba-technical-bounces@lists.samba.org Sat Jun 26 13:36:56 2010
Return-path: <samba-technical-bounces@lists.samba.org>
Envelope-to: gnsi-samba-technical@m.gmane.org
Received: from fn.samba.org ([216.83.154.106] helo=lists.samba.org)
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <samba-technical-bounces@lists.samba.org>)
id 1OSTgu-00025d-6P
for gnsi-samba-technical@m.gmane.org; Sat, 26 Jun 2010 13:36:56 +0200
Received: from fn.samba.org (localhost [127.0.0.1])
by lists.samba.org (Postfix) with ESMTP id 1ED11AD2C4;
Sat, 26 Jun 2010 05:36:45 -0600 (MDT)
X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on fn.samba.org
X-Spam-Level:
X-Spam-Status: No, score=-6.6 required=3.8 tests=BAYES_00,HTML_MESSAGE,
RCVD_IN_DNSWL_MED,SPF_PASS autolearn=ham version=3.2.5
X-Original-To: samba-technical@lists.samba.org
Delivered-To: samba-technical@lists.samba.org
Received: from e34.co.us.ibm.com (e34.co.us.ibm.com [32.97.110.152])
by lists.samba.org (Postfix) with ESMTP id 30F90AD282
for <samba-technical@lists.samba.org>;
Fri, 25 Jun 2010 18:52:24 -0600 (MDT)
Received: from d03relay01.boulder.ibm.com (d03relay01.boulder.ibm.com
[9.17.195.226])
by e34.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id o5Q0iN1h017083
for <samba-technical@lists.samba.org>; Fri, 25 Jun 2010 18:44:23 -0600
Received: from d03av01.boulder.ibm.com (d03av01.boulder.ibm.com [9.17.195.167])
by d03relay01.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id
o5Q0qQTN175324
for <samba-technical@lists.samba.org>; Fri, 25 Jun 2010 18:52:26 -0600
Received: from d03av01.boulder.ibm.com (loopback [127.0.0.1])
by d03av01.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP
id o5Q0qPCF006767
for <samba-technical@lists.samba.org>; Fri, 25 Jun 2010 18:52:26 -0600
Received: from d03nm128.boulder.ibm.com (d03nm128.boulder.ibm.com
[9.17.195.32])
by d03av01.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id
o5Q0qPrh006760; Fri, 25 Jun 2010 18:52:25 -0600
In-Reply-To: <AANLkTilOTrHLvLv4XWYZO6xCnYZgYT7gO2M-oKZ6VvqM@mail.gmail.com>
X-KeepSent: B55E8EC7:E8DD23D5-8725774E:0004921E;
type=4; name=$KeepSent
X-Mailer: Lotus Notes Build V852_M2_03302010 March 30, 2010
X-MIMETrack: Serialize by Router on D03NM128/03/M/IBM(Release 8.0.1|February
07, 2008) at 06/25/2010 18:52:25
X-Mailman-Approved-At: Sat, 26 Jun 2010 05:36:42 -0600
X-Content-Filtered-By: Mailman/MimeDel 2.1.12
X-BeenThere: samba-technical@lists.samba.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "Discussions on Samba internals. For general questions please
subscribe to the list samba@samba.org"
<samba-technical.lists.samba.org>
List-Unsubscribe: <https://lists.samba.org/mailman/options/samba-technical>,
<mailto:samba-technical-request@lists.samba.org?subject=unsubscribe>
List-Archive: <http://lists.samba.org/pipermail/samba-technical>
List-Post: <mailto:samba-technical@lists.samba.org>
List-Help: <mailto:samba-technical-request@lists.samba.org?subject=help>
List-Subscribe: <https://lists.samba.org/mailman/listinfo/samba-technical>,
<mailto:samba-technical-request@lists.samba.org?subject=subscribe>
Sender: samba-technical-bounces@lists.samba.org
Errors-To: samba-technical-bounces@lists.samba.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1003208>
Steve French <smfrench@gmail.com> wrote on 06/25/2010 04:05:30 PM:
> Steve French <smfrench@gmail.com>
> 06/25/2010 04:05 PM
>
> To
>
> Jeff Layton <jlayton@samba.org>, "Aneesh Kumar K.V"
> <aneesh.kumar@linux.vnet.ibm.com>, Mingming Cao/Beaverton/IBM@IBMUS
>
> cc
>
> David Howells <dhowells@redhat.com>, Suresh Jayaraman
> <sjayaraman@suse.de>, linux-cifs@vger.kernel.org, linux-
> fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, samba-
> technical@lists.samba.org, Jeff Layton <jlayton@redhat.com>
>
> Subject
>
> Re: [RFC][PATCH 06/10] cifs: define inode-level cache object and
> register them
>
> On Fri, Jun 25, 2010 at 5:26 PM, Jeff Layton <jlayton@samba.org> wrot=
e:
> >
> > On Fri, 25 Jun 2010 22:46:38 +0100
> > David Howells <dhowells@redhat.com> wrote:
> >
> > > Jeff Layton <jlayton@samba.org> wrote:
> > >
> > > > Looks like it mostly uses the ctime. IMO, the mtime would be a
better
> > > > choice since it changes less frequently, but I don't guess that=
it
> > > > matters very much.
> > >
> > > I'd've thought mtime changes more frequently since that's
> altered when data is
> > > written. =A0ctime is changed when attributes are changed.
> > >
> >
> > IIUC, updating mtime for a write is also an attribute change, and t=
hat
> > affects ctime. According to the stat(2) manpage:
> >
> > =A0 =A0 =A0 The field st_ctime is changed by writing or by setting
> =A0inode =A0informa-
> > =A0 =A0 =A0 tion (i.e., owner, group, link count, mode, etc.).
> >
> > > Note that Ext4 appears to have a file creation time field in its
inode
> > > (struct ext4_inode::i_crtime[_extra]). =A0Can Samba be made to us=
e
that?
> > >
> >
> > Is it exposed to userspace in any (standard) way? It would be handy=
to
> > have that. While we're wishing...it might also be nice to have a
> > standard way to get at the i_generation from userspace too.
> >
>
> Yes - I have talked with MingMing and Aneesh about those (NFS may
> someday be able to use those too).=A0 An obstacle in the past had bee=
n
> that samba server stores its own fake creation time in an ndr encoded=
> xattr which complicates things.
>
> MingMing/Annesh -
> Xattr or other way to get at birth time?
>
>
Not yet,
The ext4 file creation time only accesable from the kernel at the mome=
nt.
There were discussion
to make this information avaliable via xattr before, but was rejected,
since most people
agree that making this info avalibele via stat() is more standard. Howe=
ver
modifying stat() would imply
big interface change. thus no action has been taken yet.
> --
> Thanks,
>
> Steve=

View file

@ -0,0 +1,156 @@
From: "Aneesh Kumar K. V" <aneesh.kumar@linux.vnet.ibm.com>
Subject: Re: [RFC][PATCH 06/10] cifs: define inode-level cache object and register them
Date: Sun, 27 Jun 2010 23:47:21 +0530
Lines: 100
Message-ID: <871vbscpce.fsf@linux.vnet.ibm.com>
References: <20100625125306.7f9b1966@tlielax.poochiereds.net> <4C24A606.5040001@suse.de> <1277220214-3597-1-git-send-email-sjayaraman@suse.de> <9822.1277312573@redhat.com> <22697.1277470549@redhat.com> <18628.1277502398@redhat.com> <20100625182651.36800d06@tlielax.poochiereds.net> <AANLkTilOTrHLvLv4XWYZO6xCnYZgYT7gO2M-oKZ6VvqM@mail.gmail.com> <OFB55E8EC7.E8DD23D5-ON8725774E.0004921E-8825774E.0004CC31@us.ibm.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: QUOTED-PRINTABLE
Cc: David Howells <dhowells@redhat.com>,
Jeff Layton <jlayton@redhat.com>,
Jeff Layton <jlayton@samba.org>, linux-cifs@vger.kernel.org,
linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
samba-technical@lists.samba.org,
Suresh Jayaraman <sjayaraman@suse.de>
To: Mingming Cao <mcao@us.ibm.com>, Steve French <smfrench@gmail.com>,
"DENIEL Philippe" <philippe.deniel@cea.fr>
X-From: linux-kernel-owner@vger.kernel.org Sun Jun 27 20:18:00 2010
Return-path: <linux-kernel-owner@vger.kernel.org>
Envelope-to: glk-linux-kernel-3@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-kernel-owner@vger.kernel.org>)
id 1OSwQZ-0003Kh-Vu
for glk-linux-kernel-3@lo.gmane.org; Sun, 27 Jun 2010 20:18:00 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1754631Ab0F0SRq convert rfc822-to-quoted-printable (ORCPT
<rfc822;glk-linux-kernel-3@m.gmane.org>);
Sun, 27 Jun 2010 14:17:46 -0400
Received: from e23smtp07.au.ibm.com ([202.81.31.140]:52430 "EHLO
e23smtp07.au.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1753837Ab0F0SRl convert rfc822-to-8bit (ORCPT
<rfc822;linux-kernel@vger.kernel.org>);
Sun, 27 Jun 2010 14:17:41 -0400
Received: from d23relay05.au.ibm.com (d23relay05.au.ibm.com [202.81.31.247])
by e23smtp07.au.ibm.com (8.14.4/8.13.1) with ESMTP id o5RIHbfJ012483;
Mon, 28 Jun 2010 04:17:37 +1000
Received: from d23av03.au.ibm.com (d23av03.au.ibm.com [9.190.234.97])
by d23relay05.au.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id o5RIHW9f1130634;
Mon, 28 Jun 2010 04:17:32 +1000
Received: from d23av03.au.ibm.com (loopback [127.0.0.1])
by d23av03.au.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id o5RIHVcR027534;
Mon, 28 Jun 2010 04:17:32 +1000
Received: from skywalker.linux.vnet.ibm.com ([9.77.196.78])
by d23av03.au.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id o5RIHMFl027485;
Mon, 28 Jun 2010 04:17:24 +1000
In-Reply-To: <OFB55E8EC7.E8DD23D5-ON8725774E.0004921E-8825774E.0004CC31@us.ibm.com>
User-Agent: Notmuch/ (http://notmuchmail.org) Emacs/24.0.50.1 (i686-pc-linux-gnu)
Sender: linux-kernel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-kernel.vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1003357>
On Fri, 25 Jun 2010 17:52:24 -0700, Mingming Cao <mcao@us.ibm.com> wrot=
e:
>=20
>=20
> Steve French <smfrench@gmail.com> wrote on 06/25/2010 04:05:30 PM:
>=20
> > Steve French <smfrench@gmail.com>
> > 06/25/2010 04:05 PM
> >
> > To
> >
> > Jeff Layton <jlayton@samba.org>, "Aneesh Kumar K.V"
> > <aneesh.kumar@linux.vnet.ibm.com>, Mingming Cao/Beaverton/IBM@IBMUS
> >
> > cc
> >
> > David Howells <dhowells@redhat.com>, Suresh Jayaraman
> > <sjayaraman@suse.de>, linux-cifs@vger.kernel.org, linux-
> > fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, samba-
> > technical@lists.samba.org, Jeff Layton <jlayton@redhat.com>
> >
> > Subject
> >
> > Re: [RFC][PATCH 06/10] cifs: define inode-level cache object and
> > register them
> >
> > On Fri, Jun 25, 2010 at 5:26 PM, Jeff Layton <jlayton@samba.org> wr=
ote:
> > >
> > > On Fri, 25 Jun 2010 22:46:38 +0100
> > > David Howells <dhowells@redhat.com> wrote:
> > >
> > > > Jeff Layton <jlayton@samba.org> wrote:
> > > >
> > > > > Looks like it mostly uses the ctime. IMO, the mtime would be =
a
> better
> > > > > choice since it changes less frequently, but I don't guess th=
at it
> > > > > matters very much.
> > > >
> > > > I'd've thought mtime changes more frequently since that's
> > altered when data is
> > > > written. =C2=A0ctime is changed when attributes are changed.
> > > >
> > >
> > > IIUC, updating mtime for a write is also an attribute change, and=
that
> > > affects ctime. According to the stat(2) manpage:
> > >
> > > =C2=A0 =C2=A0 =C2=A0 The field st_ctime is changed by writing or =
by setting
> > =C2=A0inode =C2=A0informa-
> > > =C2=A0 =C2=A0 =C2=A0 tion (i.e., owner, group, link count, mode, =
etc.).
> > >
> > > > Note that Ext4 appears to have a file creation time field in it=
s
> inode
> > > > (struct ext4_inode::i_crtime[_extra]). =C2=A0Can Samba be made =
to use
> that?
> > > >
> > >
> > > Is it exposed to userspace in any (standard) way? It would be han=
dy to
> > > have that. While we're wishing...it might also be nice to have a
> > > standard way to get at the i_generation from userspace too.
> > >
> >
> > Yes - I have talked with MingMing and Aneesh about those (NFS may
> > someday be able to use those too).=C2=A0 An obstacle in the past ha=
d been
> > that samba server stores its own fake creation time in an ndr encod=
ed
> > xattr which complicates things.
> >
> > MingMing/Annesh -
> > Xattr or other way to get at birth time?
> >
> >
>=20
> Not yet,
> The ext4 file creation time only accesable from the kernel at the mo=
ment.
> There were discussion
> to make this information avaliable via xattr before, but was rejected=
,
> since most people
> agree that making this info avalibele via stat() is more standard. Ho=
wever
> modifying stat() would imply
> big interface change. thus no action has been taken yet.
NFS ganesha pNFS also had a requirement for getting i_generation and
inode number in userspace. So may be we should now look at updating
stat or add a variant syscall that include i_generation and create time
in the return value
-aneesh

View file

@ -0,0 +1,66 @@
From: Christoph Hellwig <hch-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
Subject: Re: [RFC][PATCH 06/10] cifs: define inode-level cache object and
register them
Date: Sun, 27 Jun 2010 14:22:29 -0400
Lines: 9
Message-ID: <20100627182229.GA492@infradead.org>
References: <20100625125306.7f9b1966@tlielax.poochiereds.net>
<4C24A606.5040001@suse.de>
<1277220214-3597-1-git-send-email-sjayaraman@suse.de>
<9822.1277312573@redhat.com>
<22697.1277470549@redhat.com>
<18628.1277502398@redhat.com>
<20100625182651.36800d06@tlielax.poochiereds.net>
<AANLkTilOTrHLvLv4XWYZO6xCnYZgYT7gO2M-oKZ6VvqM@mail.gmail.com>
<OFB55E8EC7.E8DD23D5-ON8725774E.0004921E-8825774E.0004CC31@us.ibm.com>
<871vbscpce.fsf@linux.vnet.ibm.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Cc: Mingming Cao <mcao-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>, Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
DENIEL Philippe <philippe.deniel-KCE40YydGKI@public.gmane.org>,
David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
Jeff Layton <jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
Jeff Layton <jlayton-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>, linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
samba-technical-w/Ol4Ecudpl8XjKLYN78aQ@public.gmane.org,
Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
To: "Aneesh Kumar K. V" <aneesh.kumar-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Sun Jun 27 20:22:46 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1OSwVB-0005TI-SG
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Sun, 27 Jun 2010 20:22:46 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1752811Ab0F0SWo (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Sun, 27 Jun 2010 14:22:44 -0400
Received: from bombadil.infradead.org ([18.85.46.34]:55433 "EHLO
bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1752728Ab0F0SWn (ORCPT
<rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>); Sun, 27 Jun 2010 14:22:43 -0400
Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux))
id 1OSwUv-00009z-9N; Sun, 27 Jun 2010 18:22:29 +0000
Content-Disposition: inline
In-Reply-To: <871vbscpce.fsf-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
User-Agent: Mutt/1.5.20 (2009-08-17)
X-SRS-Rewrite: SMTP reverse-path rewritten from <hch-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org> by bombadil.infradead.org
See http://www.infradead.org/rpr.html
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1003358>
On Sun, Jun 27, 2010 at 11:47:21PM +0530, Aneesh Kumar K. V wrote:
> NFS ganesha pNFS also had a requirement for getting i_generation and
> inode number in userspace. So may be we should now look at updating
> stat or add a variant syscall that include i_generation and create time
> in the return value
What's missing in knfsd that you feel the sudden urge to move backwards
to a userspace nfsd (one with a horribly crappy codebase, too).

View file

@ -0,0 +1,89 @@
From: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
Subject: Re: [RFC][PATCH 05/10] cifs: define superblock-level cache index
objects and register them
Date: Mon, 28 Jun 2010 18:23:13 +0530
Lines: 48
Message-ID: <4C289B39.4060901@suse.de>
References: <22746.1277470713@redhat.com> <4C24A4A0.90408@suse.de> <1277220206-3559-1-git-send-email-sjayaraman@suse.de> <yes> <9720.1277312290@redhat.com> <23204.1277472412@redhat.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Cc: Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
To: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Mon Jun 28 14:53:24 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1OTDq0-00054Q-At
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Mon, 28 Jun 2010 14:53:24 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1754503Ab0F1MxX (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Mon, 28 Jun 2010 08:53:23 -0400
Received: from cantor2.suse.de ([195.135.220.15]:48374 "EHLO mx2.suse.de"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1754456Ab0F1MxW (ORCPT <rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>);
Mon, 28 Jun 2010 08:53:22 -0400
Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.221.2])
by mx2.suse.de (Postfix) with ESMTP id 7BDC18672B;
Mon, 28 Jun 2010 14:53:21 +0200 (CEST)
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.5) Gecko/20091130 SUSE/3.0.0-1.1.1 Thunderbird/3.0
In-Reply-To: <23204.1277472412-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1003530>
On 06/25/2010 06:56 PM, David Howells wrote:
> David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> wrote:
>
>>>> validate the root directory of the share in some way?
>>>
>>> I don't know if there is a way to do this.
>>
>> Is there an inode number or something? Even the creation time might do.
>
> Looking in cifspdu.h, there are a number of things that it might be possible
> to use.
>
> (1) FILE_ALL_INFO: CreationTime, IndexNumber, IndexNumber1, FileName
> (assuming this isn't flattened to '\' or something for the root of a
> share.
>
> (2) FILE_UNIX_BASIC_INFO: DevMajor, DevMinor, UniqueId.
>
> (3) FILE_INFO_STANDARD: CreationDate, CreationTime.
>
> (4) FILE_INFO_BASIC: CreationTime.
>
> (5) FILE_DIRECTORY_INFO: FileIndex, CreationTime, FileName.
>
> (6) SEARCH_ID_FULL_DIR_INFO: FileIndex, CreationTime, UniqueId, FileName.
>
> (7) FILE_BOTH_DIRECTORY_INFO: FileIndex, CreationTime, ShortName, FileName.
>
> (8) OPEN_RSP_EXT: Fid, CreationTime, VolumeGUID, FileId.
>
> You may have to choose different sets of things, depending on what the server
> has on offer. Also, don't forget, if you can't work out whether a share is
Did you mean we need to validate differently for different servers?
I just did some testing and it looks like we could rely on CreationTime,
IndexNumber for validating with Windows servers (FileName is relative to
the mapped drive) and UniqueId for validating with Samba servers. I did
not test all possibilities (there could be more).
> coherent or not from the above, you can always use LastWriteTime, ChangeTime
> and EndOfFile and just discard the whole subtree if they differ.
>
Thanks,
--
Suresh Jayaraman

View file

@ -0,0 +1,92 @@
From: Timur Tabi <timur.tabi@gmail.com>
Subject: Re: [PATCH v2 5/7] powerpc/85xx: Add MChk handler for SRIO port
Date: Wed, 30 Jun 2010 15:55:58 -0500
Lines: 33
Message-ID: <AANLkTine3pc2Ai2Woj81Y9fS_KgGs1sIMb2NMR6G74ww@mail.gmail.com>
References: <20100308191005.GE4324@amak.tundra.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: QUOTED-PRINTABLE
Cc: mporter@kernel.crashing.org, linux-kernel@vger.kernel.org,
linuxppc-dev@lists.ozlabs.org, thomas.moll@sysgo.com
To: Alexandre Bounine <abounine@tundra.com>
X-From: linux-kernel-owner@vger.kernel.org Wed Jun 30 22:56:40 2010
Return-path: <linux-kernel-owner@vger.kernel.org>
Envelope-to: glk-linux-kernel-3@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-kernel-owner@vger.kernel.org>)
id 1OU4Kl-0005Kf-V4
for glk-linux-kernel-3@lo.gmane.org; Wed, 30 Jun 2010 22:56:40 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1756668Ab0F3U4b convert rfc822-to-quoted-printable (ORCPT
<rfc822;glk-linux-kernel-3@m.gmane.org>);
Wed, 30 Jun 2010 16:56:31 -0400
Received: from mail-vw0-f46.google.com ([209.85.212.46]:41333 "EHLO
mail-vw0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1753416Ab0F3U43 convert rfc822-to-8bit (ORCPT
<rfc822;linux-kernel@vger.kernel.org>);
Wed, 30 Jun 2010 16:56:29 -0400
Received: by vws5 with SMTP id 5so1449398vws.19
for <linux-kernel@vger.kernel.org>; Wed, 30 Jun 2010 13:56:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=gamma;
h=domainkey-signature:received:mime-version:received:in-reply-to
:references:from:date:message-id:subject:to:cc:content-type
:content-transfer-encoding;
bh=FTlit9cHTz/9rLGcvA5/pEZlzxAQ5x20v8HE5XYFwYM=;
b=NFbjnxZ4KwcjTy4tFh+BnhWPEGeYTw6z918yIouRaMmbEDph56xq26K9aTBokuYHqe
UgFjBn7XWcxvqJPyCetfsDRG+F3M2XwCq/DSCswSPtXSLsy8WKm7cMXVS3hjiO8sMZ97
mRMGZkYBJHjWP+ulkBXiq6q7/OQuE8Dkl+rWM=
DomainKey-Signature: a=rsa-sha1; c=nofws;
d=gmail.com; s=gamma;
h=mime-version:in-reply-to:references:from:date:message-id:subject:to
:cc:content-type:content-transfer-encoding;
b=r0N6AOAg+TSvY2kPQPahldj4iRU9oUoSLtHA7JXG2QU4CR9O5GBhxAtr2aY99qUPZd
tFS0ZWRAb9cmOgiZhTpNxsBjCJ/e/DQ1ccP5rZ/U40q1SJ1KwN92hqpOoppZ0tkqSB7/
UlQtsvPSK7a0bYqufEmscfAi98w1+mfZIbK6U=
Received: by 10.220.161.203 with SMTP id s11mr5093041vcx.195.1277931388141;
Wed, 30 Jun 2010 13:56:28 -0700 (PDT)
Received: by 10.220.161.137 with HTTP; Wed, 30 Jun 2010 13:55:58 -0700 (PDT)
In-Reply-To: <20100308191005.GE4324@amak.tundra.com>
Sender: linux-kernel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-kernel.vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1004632>
On Mon, Mar 8, 2010 at 2:10 PM, Alexandre Bounine <abounine@tundra.com>=
wrote:
>
> From: Alexandre Bounine <alexandre.bounine@idt.com>
>
> Add Machine Check exception handling into RapidIO port driver
> for Freescale SoCs (MPC85xx).
>
> Signed-off-by: Alexandre Bounine <alexandre.bounine@idt.com>
> Tested-by: Thomas Moll <thomas.moll@sysgo.com>
=2E..
> +static int fsl_rio_mcheck_exception(struct pt_regs *regs)
> +{
> + =A0 =A0 =A0 const struct exception_table_entry *entry =3D NULL;
> + =A0 =A0 =A0 unsigned long reason =3D (mfspr(SPRN_MCSR) & MCSR_MASK)=
;
MCSR_MASK is not defined anywhere, so when I compile this code, I get t=
his:
CC arch/powerpc/sysdev/fsl_rio.o
arch/powerpc/sysdev/fsl_rio.c: In function 'fsl_rio_mcheck_exception':
arch/powerpc/sysdev/fsl_rio.c:248: error: 'MCSR_MASK' undeclared
(first use in this function)
arch/powerpc/sysdev/fsl_rio.c:248: error: (Each undeclared identifier
is reported only once
arch/powerpc/sysdev/fsl_rio.c:248: error: for each function it appears =
in.)
--=20
Timur Tabi
Linux kernel developer at Freescale

View file

@ -0,0 +1,68 @@
From: Timur Tabi <timur.tabi@gmail.com>
Subject: Re: [PATCH v2 5/7] powerpc/85xx: Add MChk handler for SRIO port
Date: Wed, 30 Jun 2010 16:00:56 -0500
Lines: 12
Message-ID: <AANLkTinKbimKyLpvFD7KOvavshu_n8gRcp2BvEJj0XZQ@mail.gmail.com>
References: <20100308191005.GE4324@amak.tundra.com> <AANLkTine3pc2Ai2Woj81Y9fS_KgGs1sIMb2NMR6G74ww@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Cc: mporter@kernel.crashing.org, linux-kernel@vger.kernel.org,
linuxppc-dev@lists.ozlabs.org, thomas.moll@sysgo.com
To: Alexandre Bounine <abounine@tundra.com>
X-From: linux-kernel-owner@vger.kernel.org Wed Jun 30 23:01:37 2010
Return-path: <linux-kernel-owner@vger.kernel.org>
Envelope-to: glk-linux-kernel-3@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-kernel-owner@vger.kernel.org>)
id 1OU4PZ-0000HS-0T
for glk-linux-kernel-3@lo.gmane.org; Wed, 30 Jun 2010 23:01:37 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1755703Ab0F3VB2 (ORCPT <rfc822;glk-linux-kernel-3@m.gmane.org>);
Wed, 30 Jun 2010 17:01:28 -0400
Received: from mail-vw0-f46.google.com ([209.85.212.46]:53141 "EHLO
mail-vw0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1751784Ab0F3VB1 (ORCPT
<rfc822;linux-kernel@vger.kernel.org>);
Wed, 30 Jun 2010 17:01:27 -0400
Received: by vws5 with SMTP id 5so1454517vws.19
for <linux-kernel@vger.kernel.org>; Wed, 30 Jun 2010 14:01:26 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=gamma;
h=domainkey-signature:received:mime-version:received:in-reply-to
:references:from:date:message-id:subject:to:cc:content-type;
bh=+BUKti+Oa03CrnVvRyT591FhcoxqR7S2rzZHtD6WSuY=;
b=O/b04HLJrmTE0aIq2mNCRznQrXxAAGHSMarHR5mrgYptmr68froM6UgmDqTZFLhNiH
BcT8g+AziiqSV1k/ckXjRyVR0s9Jdv4g2phMNtp8NStbPfOPpLDkUKTQadphOTonCfeK
e+ZrLBwh+FCoYNAOjvFioBKj6CxN2Oi5xIhPc=
DomainKey-Signature: a=rsa-sha1; c=nofws;
d=gmail.com; s=gamma;
h=mime-version:in-reply-to:references:from:date:message-id:subject:to
:cc:content-type;
b=UcKGhJIXCTTcSvBWwGwLUefPONGygVPsUnTt4nDSl4udB8JKMyi0EghzzgNXUyq4Dz
UCxzZAyxzjvjgsgPS3kzPhSsWG2PRG66pC1OA68RJ5YVOjt55/yOz/yfTqXBVvRSq2fV
QNcKACYHSjkIZ7Uq7ZEW9bEGI5tTKdz++N2UA=
Received: by 10.220.124.73 with SMTP id t9mr5099129vcr.37.1277931686462; Wed,
30 Jun 2010 14:01:26 -0700 (PDT)
Received: by 10.220.161.137 with HTTP; Wed, 30 Jun 2010 14:00:56 -0700 (PDT)
In-Reply-To: <AANLkTine3pc2Ai2Woj81Y9fS_KgGs1sIMb2NMR6G74ww@mail.gmail.com>
Sender: linux-kernel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-kernel.vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1004633>
On Wed, Jun 30, 2010 at 3:55 PM, Timur Tabi <timur.tabi@gmail.com> wrote:
> MCSR_MASK is not defined anywhere, so when I compile this code, I get this:
Never mind. I see that it's been fixed already, and that the patch
that removed MCSR_MASK was posted around the same time that this patch
was posted.
--
Timur Tabi
Linux kernel developer at Freescale

View file

@ -0,0 +1,104 @@
From: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
Subject: [RFC][PATCH 10/10] cifs: add mount option to enable local caching
Date: Tue, 22 Jun 2010 20:55:09 +0530
Lines: 66
Message-ID: <1277220309-3757-1-git-send-email-sjayaraman@suse.de>
References: <yes>
Cc: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Tue Jun 22 17:25:29 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1OR5Ls-0004PS-BM
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Tue, 22 Jun 2010 17:25:28 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1755015Ab0FVPZ1 (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Tue, 22 Jun 2010 11:25:27 -0400
Received: from victor.provo.novell.com ([137.65.250.26]:48639 "EHLO
victor.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1754070Ab0FVPZ1 (ORCPT
<rfc822;groupwise-SJayaraman-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org:0:0>);
Tue, 22 Jun 2010 11:25:27 -0400
X-Greylist: delayed 316 seconds by postgrey-1.27 at vger.kernel.org; Tue, 22 Jun 2010 11:25:26 EDT
Received: from localhost (prv-ext-foundry1int.gns.novell.com [137.65.251.240])
by victor.provo.novell.com with ESMTP; Tue, 22 Jun 2010 09:25:11 -0600
X-Mailer: git-send-email 1.6.4.2
In-Reply-To: <yes>
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1001750>
Add a mount option 'fsc' to enable local caching on CIFS.
As the cifs-utils (userspace) changes are not done yet, this patch enables
'fsc' by default to assist testing.
Signed-off-by: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
---
fs/cifs/cifs_fs_sb.h | 1 +
fs/cifs/connect.c | 8 ++++++++
2 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/fs/cifs/cifs_fs_sb.h b/fs/cifs/cifs_fs_sb.h
index 246a167..9e77145 100644
--- a/fs/cifs/cifs_fs_sb.h
+++ b/fs/cifs/cifs_fs_sb.h
@@ -35,6 +35,7 @@
#define CIFS_MOUNT_DYNPERM 0x1000 /* allow in-memory only mode setting */
#define CIFS_MOUNT_NOPOSIXBRL 0x2000 /* mandatory not posix byte range lock */
#define CIFS_MOUNT_NOSSYNC 0x4000 /* don't do slow SMBflush on every sync*/
+#define CIFS_MOUNT_FSCACHE 0x8000 /* local caching enabled */
struct cifs_sb_info {
struct cifsTconInfo *tcon; /* primary mount */
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index 4844dbd..6c6ff3c 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -98,6 +98,7 @@ struct smb_vol {
bool noblocksnd:1;
bool noautotune:1;
bool nostrictsync:1; /* do not force expensive SMBflush on every sync */
+ bool fsc:1; /* enable fscache */
unsigned int rsize;
unsigned int wsize;
bool sockopt_tcp_nodelay:1;
@@ -843,6 +844,9 @@ cifs_parse_mount_options(char *options, const char *devname,
/* default to using server inode numbers where available */
vol->server_ino = 1;
+ /* XXX: default to fsc for testing until mount.cifs pieces are done */
+ vol->fsc = 1;
+
if (!options)
return 1;
@@ -1332,6 +1336,8 @@ cifs_parse_mount_options(char *options, const char *devname,
printk(KERN_WARNING "CIFS: Mount option noac not "
"supported. Instead set "
"/proc/fs/cifs/LookupCacheEnabled to 0\n");
+ } else if (strnicmp(data, "fsc", 3) == 0) {
+ vol->fsc = true;
} else
printk(KERN_WARNING "CIFS: Unknown mount option %s\n",
data);
@@ -2405,6 +2411,8 @@ static void setup_cifs_sb(struct smb_vol *pvolume_info,
cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_OVERR_GID;
if (pvolume_info->dynperm)
cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_DYNPERM;
+ if (pvolume_info->fsc)
+ cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_FSCACHE;
if (pvolume_info->direct_io) {
cFYI(1, "mounting share using direct i/o");
cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_DIRECT_IO;
--
1.6.4.2

View file

@ -0,0 +1,103 @@
From: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
Subject: [RFC][PATCH 00/10] cifs: local caching support using FS-Cache
Date: Tue, 22 Jun 2010 20:50:05 +0530
Lines: 66
Message-ID: <1277220005-3322-1-git-send-email-sjayaraman@suse.de>
References: <yes>
Cc: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Tue Jun 22 17:40:38 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1OR5aY-00055O-BD
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Tue, 22 Jun 2010 17:40:38 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1751889Ab0FVPkf (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Tue, 22 Jun 2010 11:40:35 -0400
Received: from victor.provo.novell.com ([137.65.250.26]:50040 "EHLO
victor.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1751554Ab0FVPkf (ORCPT
<rfc822;groupwise-SJayaraman-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org:0:0>);
Tue, 22 Jun 2010 11:40:35 -0400
Received: from localhost (prv-ext-foundry1int.gns.novell.com [137.65.251.240])
by victor.provo.novell.com with ESMTP; Tue, 22 Jun 2010 09:20:07 -0600
X-Mailer: git-send-email 1.6.4.2
In-Reply-To: <yes>
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1001756>
This patchset is a first stab at adding persistent, local caching facility for
CIFS using the FS-Cache interface.
The index hierarchy which is mainly used to locate a file object or discard
a certain subset of the files cached, currently has three levels:
- Server
- Share
- File
The server index object is keyed by hostname of the server. The superblock
index object is keyed by the sharename and the inode object is keyed by the
UniqueId. The cache coherency is ensured by checking the 'LastWriteTime' and
size of file.
To use this, apply this patchset in order, mount the share with rsize=4096 and
try copying a huge file (say few hundred MBs) from mount point to local
filesystem. During the first time, the cache will be initialized. When you copy
the second time, it should read from the local cache.
To reduce the impact of page cache and see the local caching in action
readily, try doing a sync and drop the caches by doing:
sync; echo 3 > /proc/sys/vm/drop_caches
Known issues
-------------
- the cache coherency check may not be reliable always as some
CIFS servers are known not to update mtime until the filehandle is
closed.
- not all the Servers under all circumstances provide a unique
'UniqueId'.
Todo's
-------
- improvements to avoid potential key collisions
- address the above known issues
This set is lightly tested and all the bugs seen during my testing have been
fixed. However, this can be considered as an RFC for now.
Any Comments or Suggestions are welcome.
Suresh Jayaraman (10)
cifs: add kernel config option for CIFS Client caching support
cifs: guard cifsglob.h against multiple inclusion
cifs: register CIFS for caching
cifs: define server-level cache index objects and register them with FS-Cache
cifs: define superblock-level cache index objects and register them
cifs: define inode-level cache object and register them
cifs: FS-Cache page management
cifs: store pages into local cache
cifs: read pages from FS-Cache
cifs: add mount option to enable local caching
Kconfig | 9 ++
Makefile | 2
cache.c | 251 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
cifs_fs_sb.h | 1
cifsfs.c | 15 +++
cifsglob.h | 14 +++
connect.c | 16 +++
file.c | 51 +++++++++++
fscache.c | 244 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
fscache.h | 135 +++++++++++++++++++++++++++++++
inode.c | 4
11 files changed, 742 insertions(+)

View file

@ -0,0 +1,67 @@
From: Suresh Jayaraman <sjayaraman@suse.de>
Subject: [RFC][PATCH 01/10] cifs: add kernel config option for CIFS Client caching support
Date: Tue, 22 Jun 2010 20:52:38 +0530
Lines: 30
Message-ID: <1277220158-3405-1-git-send-email-sjayaraman@suse.de>
References: <yes>
Cc: linux-cifs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org, David Howells <dhowells@redhat.com>
To: Steve French <smfrench@gmail.com>
X-From: linux-kernel-owner@vger.kernel.org Tue Jun 22 17:43:27 2010
Return-path: <linux-kernel-owner@vger.kernel.org>
Envelope-to: glk-linux-kernel-3@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-kernel-owner@vger.kernel.org>)
id 1OR5dG-0007m9-Ij
for glk-linux-kernel-3@lo.gmane.org; Tue, 22 Jun 2010 17:43:26 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1751536Ab0FVPnS (ORCPT <rfc822;glk-linux-kernel-3@m.gmane.org>);
Tue, 22 Jun 2010 11:43:18 -0400
Received: from victor.provo.novell.com ([137.65.250.26]:51303 "EHLO
victor.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1750800Ab0FVPnR (ORCPT
<rfc822;groupwise-SJayaraman@novell.com:0:0>);
Tue, 22 Jun 2010 11:43:17 -0400
Received: from localhost (prv-ext-foundry1int.gns.novell.com [137.65.251.240])
by victor.provo.novell.com with ESMTP; Tue, 22 Jun 2010 09:22:40 -0600
X-Mailer: git-send-email 1.6.4.2
In-Reply-To: <yes>
Sender: linux-kernel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-kernel.vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1001757>
Add a kernel config option to enable local caching for CIFS.
Signed-off-by: Suresh Jayaraman <sjayaraman@suse.de>
---
fs/cifs/Kconfig | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/fs/cifs/Kconfig b/fs/cifs/Kconfig
index 80f3525..5739fd7 100644
--- a/fs/cifs/Kconfig
+++ b/fs/cifs/Kconfig
@@ -131,6 +131,15 @@ config CIFS_DFS_UPCALL
IP addresses) which is needed for implicit mounts of DFS junction
points. If unsure, say N.
+config CIFS_FSCACHE
+ bool "Provide CIFS client caching support (EXPERIMENTAL)"
+ depends on EXPERIMENTAL
+ depends on CIFS=m && FSCACHE || CIFS=y && FSCACHE=y
+ help
+ Makes CIFS FS-Cache capable. Say Y here if you want your CIFS data
+ to be cached locally on disk through the general filesystem cache
+ manager. If unsure, say N.
+
config CIFS_EXPERIMENTAL
bool "CIFS Experimental Features (EXPERIMENTAL)"
depends on CIFS && EXPERIMENTAL
--
1.6.4.2

View file

@ -0,0 +1,73 @@
From: Suresh Jayaraman <sjayaraman@suse.de>
Subject: [RFC][PATCH 02/10] cifs: guard cifsglob.h against multiple inclusion
Date: Tue, 22 Jun 2010 20:52:50 +0530
Lines: 36
Message-ID: <1277220170-3442-1-git-send-email-sjayaraman@suse.de>
References: <yes>
Cc: linux-cifs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org, David Howells <dhowells@redhat.com>
To: Steve French <smfrench@gmail.com>
X-From: linux-fsdevel-owner@vger.kernel.org Tue Jun 22 17:43:39 2010
Return-path: <linux-fsdevel-owner@vger.kernel.org>
Envelope-to: lnx-linux-fsdevel@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-fsdevel-owner@vger.kernel.org>)
id 1OR5dT-0007sB-18
for lnx-linux-fsdevel@lo.gmane.org; Tue, 22 Jun 2010 17:43:39 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1752441Ab0FVPn3 (ORCPT <rfc822;lnx-linux-fsdevel@m.gmane.org>);
Tue, 22 Jun 2010 11:43:29 -0400
Received: from victor.provo.novell.com ([137.65.250.26]:41538 "EHLO
victor.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1751889Ab0FVPn2 (ORCPT
<rfc822;groupwise-SJayaraman@novell.com:0:0>);
Tue, 22 Jun 2010 11:43:28 -0400
Received: from localhost (prv-ext-foundry1int.gns.novell.com [137.65.251.240])
by victor.provo.novell.com with ESMTP; Tue, 22 Jun 2010 09:22:52 -0600
X-Mailer: git-send-email 1.6.4.2
In-Reply-To: <yes>
Sender: linux-fsdevel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-fsdevel.vger.kernel.org>
X-Mailing-List: linux-fsdevel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1001758>
Add conditional compile macros to guard the header file against multiple
inclusion.
Signed-off-by: Suresh Jayaraman <sjayaraman@suse.de>
---
fs/cifs/cifsglob.h | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
index a88479c..6b2c39d 100644
--- a/fs/cifs/cifsglob.h
+++ b/fs/cifs/cifsglob.h
@@ -16,6 +16,9 @@
* the GNU Lesser General Public License for more details.
*
*/
+#ifndef _CIFS_GLOB_H
+#define _CIFS_GLOB_H
+
#include <linux/in.h>
#include <linux/in6.h>
#include <linux/slab.h>
@@ -733,3 +736,5 @@ GLOBAL_EXTERN unsigned int cifs_min_small; /* min size of small buf pool */
GLOBAL_EXTERN unsigned int cifs_max_pending; /* MAX requests at once to server*/
extern const struct slow_work_ops cifs_oplock_break_ops;
+
+#endif /* _CIFS_GLOB_H */
--
1.6.4.2
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

View file

@ -0,0 +1,211 @@
From: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
Subject: [RFC][PATCH 03/10] cifs: register CIFS for caching
Date: Tue, 22 Jun 2010 20:53:09 +0530
Lines: 174
Message-ID: <1277220189-3485-1-git-send-email-sjayaraman@suse.de>
References: <yes>
Cc: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Tue Jun 22 17:43:52 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1OR5de-0007xC-Ov
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Tue, 22 Jun 2010 17:43:51 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1753125Ab0FVPnt (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Tue, 22 Jun 2010 11:43:49 -0400
Received: from victor.provo.novell.com ([137.65.250.26]:55866 "EHLO
victor.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1751261Ab0FVPnt (ORCPT
<rfc822;groupwise-SJayaraman-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org:0:0>);
Tue, 22 Jun 2010 11:43:49 -0400
Received: from localhost (prv-ext-foundry1int.gns.novell.com [137.65.251.240])
by victor.provo.novell.com with ESMTP; Tue, 22 Jun 2010 09:23:11 -0600
X-Mailer: git-send-email 1.6.4.2
In-Reply-To: <yes>
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1001759>
Define CIFS for FS-Cache and register for caching. Upon registration the
top-level index object cookie will be stuck to the netfs definition by
FS-Cache.
Signed-off-by: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
---
fs/cifs/Makefile | 2 ++
fs/cifs/cache.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
fs/cifs/cifsfs.c | 8 ++++++++
fs/cifs/fscache.h | 40 ++++++++++++++++++++++++++++++++++++++++
4 files changed, 103 insertions(+), 0 deletions(-)
create mode 100644 fs/cifs/cache.c
create mode 100644 fs/cifs/fscache.h
diff --git a/fs/cifs/Makefile b/fs/cifs/Makefile
index 9948c00..e2de709 100644
--- a/fs/cifs/Makefile
+++ b/fs/cifs/Makefile
@@ -11,3 +11,5 @@ cifs-y := cifsfs.o cifssmb.o cifs_debug.o connect.o dir.o file.o inode.o \
cifs-$(CONFIG_CIFS_UPCALL) += cifs_spnego.o
cifs-$(CONFIG_CIFS_DFS_UPCALL) += dns_resolve.o cifs_dfs_ref.o
+
+cifs-$(CONFIG_CIFS_FSCACHE) += cache.o
diff --git a/fs/cifs/cache.c b/fs/cifs/cache.c
new file mode 100644
index 0000000..1080b96
--- /dev/null
+++ b/fs/cifs/cache.c
@@ -0,0 +1,53 @@
+/*
+ * fs/cifs/cache.c - CIFS filesystem cache index structure definitions
+ *
+ * Copyright (c) 2010 Novell, Inc.
+ * Authors(s): Suresh Jayaraman (sjayaraman-l3A5Bk7waGM@public.gmane.org>
+ *
+ * This library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
+ * the GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/sched.h>
+#include <linux/mm.h>
+
+#include "fscache.h"
+#include "cifsglob.h"
+#include "cifs_debug.h"
+
+/*
+ * CIFS filesystem definition for FS-Cache
+ */
+struct fscache_netfs cifs_fscache_netfs = {
+ .name = "cifs",
+ .version = 0,
+};
+
+/*
+ * Register CIFS for caching with FS-Cache
+ */
+int cifs_fscache_register(void)
+{
+ return fscache_register_netfs(&cifs_fscache_netfs);
+}
+
+/*
+ * Unregister CIFS for caching
+ */
+void cifs_fscache_unregister(void)
+{
+ fscache_unregister_netfs(&cifs_fscache_netfs);
+}
+
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
index 484e52b..c2a7aa9 100644
--- a/fs/cifs/cifsfs.c
+++ b/fs/cifs/cifsfs.c
@@ -47,6 +47,7 @@
#include <linux/key-type.h>
#include "dns_resolve.h"
#include "cifs_spnego.h"
+#include "fscache.h"
#define CIFS_MAGIC_NUMBER 0xFF534D42 /* the first four bytes of SMB PDUs */
int cifsFYI = 0;
@@ -902,6 +903,10 @@ init_cifs(void)
cFYI(1, "cifs_max_pending set to max of 256");
}
+ rc = cifs_fscache_register();
+ if (rc)
+ goto out;
+
rc = cifs_init_inodecache();
if (rc)
goto out_clean_proc;
@@ -949,8 +954,10 @@ init_cifs(void)
cifs_destroy_mids();
out_destroy_inodecache:
cifs_destroy_inodecache();
+ cifs_fscache_unregister();
out_clean_proc:
cifs_proc_clean();
+ out:
return rc;
}
@@ -959,6 +966,7 @@ exit_cifs(void)
{
cFYI(DBG2, "exit_cifs");
cifs_proc_clean();
+ cifs_fscache_unregister();
#ifdef CONFIG_CIFS_DFS_UPCALL
cifs_dfs_release_automount_timer();
unregister_key_type(&key_type_dns_resolver);
diff --git a/fs/cifs/fscache.h b/fs/cifs/fscache.h
new file mode 100644
index 0000000..cec9e2b
--- /dev/null
+++ b/fs/cifs/fscache.h
@@ -0,0 +1,40 @@
+/*
+ * fs/cifs/fscache.h - CIFS filesystem cache interface definitions
+ *
+ * Copyright (c) 2010 Novell, Inc.
+ * Authors(s): Suresh Jayaraman (sjayaraman-l3A5Bk7waGM@public.gmane.org>
+ *
+ * This library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
+ * the GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#ifndef _CIFS_FSCACHE_H
+#define _CIFS_FSCACHE_H
+
+#include <linux/fscache.h>
+#include "cifsglob.h"
+
+#ifdef CONFIG_CIFS_FSCACHE
+
+extern struct fscache_netfs cifs_fscache_netfs;
+
+extern int cifs_fscache_register(void);
+extern void cifs_fscache_unregister(void);
+
+#else /* CONFIG_CIFS_FSCACHE */
+static inline int cifs_fscache_register(void) { return 0; }
+static inline void cifs_fscache_unregister(void) {}
+
+#endif /* CONFIG_CIFS_FSCACHE */
+
+#endif /* _CIFS_FSCACHE_H */
--
1.6.4.2

View file

@ -0,0 +1,223 @@
From: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
Subject: [RFC][PATCH 04/10] cifs: define server-level cache index objects and register them with FS-Cache
Date: Tue, 22 Jun 2010 20:53:18 +0530
Lines: 186
Message-ID: <1277220198-3522-1-git-send-email-sjayaraman@suse.de>
References: <yes>
Cc: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Tue Jun 22 17:44:26 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1OR5eD-0008G7-KP
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Tue, 22 Jun 2010 17:44:26 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1753942Ab0FVPoC (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Tue, 22 Jun 2010 11:44:02 -0400
Received: from victor.provo.novell.com ([137.65.250.26]:58783 "EHLO
victor.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1751265Ab0FVPoA (ORCPT
<rfc822;groupwise-SJayaraman-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org:0:0>);
Tue, 22 Jun 2010 11:44:00 -0400
Received: from localhost (prv-ext-foundry1int.gns.novell.com [137.65.251.240])
by victor.provo.novell.com with ESMTP; Tue, 22 Jun 2010 09:23:20 -0600
X-Mailer: git-send-email 1.6.4.2
In-Reply-To: <yes>
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1001760>
Define server-level cache index objects (as managed by TCP_ServerInfo structs).
Each server object is created in the CIFS top-level index object and is itself
an index into which superblock-level objects are inserted.
Currently, the server objects are keyed by hostname.
Signed-off-by: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
---
fs/cifs/Makefile | 2 +-
fs/cifs/cache.c | 25 +++++++++++++++++++++++++
fs/cifs/cifsglob.h | 3 +++
fs/cifs/connect.c | 4 ++++
fs/cifs/fscache.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++
fs/cifs/fscache.h | 12 ++++++++++++
6 files changed, 92 insertions(+), 1 deletion(-)
create mode 100644 fs/cifs/fscache.c
Index: cifs-2.6/fs/cifs/Makefile
===================================================================
--- cifs-2.6.orig/fs/cifs/Makefile
+++ cifs-2.6/fs/cifs/Makefile
@@ -12,4 +12,4 @@ cifs-$(CONFIG_CIFS_UPCALL) += cifs_spneg
cifs-$(CONFIG_CIFS_DFS_UPCALL) += dns_resolve.o cifs_dfs_ref.o
-cifs-$(CONFIG_CIFS_FSCACHE) += cache.o
+cifs-$(CONFIG_CIFS_FSCACHE) += fscache.o cache.o
Index: cifs-2.6/fs/cifs/cache.c
===================================================================
--- cifs-2.6.orig/fs/cifs/cache.c
+++ cifs-2.6/fs/cifs/cache.c
@@ -51,3 +51,28 @@ void cifs_fscache_unregister(void)
fscache_unregister_netfs(&cifs_fscache_netfs);
}
+/*
+ * Server object currently keyed by hostname
+ */
+static uint16_t cifs_server_get_key(const void *cookie_netfs_data,
+ void *buffer, uint16_t maxbuf)
+{
+ const struct TCP_Server_Info *server = cookie_netfs_data;
+ uint16_t len = strnlen(server->hostname, sizeof(server->hostname));
+
+ if (len > maxbuf)
+ return 0;
+
+ memcpy(buffer, server->hostname, len);
+
+ return len;
+}
+
+/*
+ * Server object for FS-Cache
+ */
+const struct fscache_cookie_def cifs_fscache_server_index_def = {
+ .name = "CIFS.server",
+ .type = FSCACHE_COOKIE_TYPE_INDEX,
+ .get_key = cifs_server_get_key,
+};
Index: cifs-2.6/fs/cifs/cifsglob.h
===================================================================
--- cifs-2.6.orig/fs/cifs/cifsglob.h
+++ cifs-2.6/fs/cifs/cifsglob.h
@@ -193,6 +193,9 @@ struct TCP_Server_Info {
bool sec_mskerberos; /* supports legacy MS Kerberos */
bool sec_kerberosu2u; /* supports U2U Kerberos */
bool sec_ntlmssp; /* supports NTLMSSP */
+#ifdef CONFIG_CIFS_FSCACHE
+ struct fscache_cookie *fscache; /* client index cache cookie */
+#endif
};
/*
Index: cifs-2.6/fs/cifs/connect.c
===================================================================
--- cifs-2.6.orig/fs/cifs/connect.c
+++ cifs-2.6/fs/cifs/connect.c
@@ -48,6 +48,7 @@
#include "nterr.h"
#include "rfc1002pdu.h"
#include "cn_cifs.h"
+#include "fscache.h"
#define CIFS_PORT 445
#define RFC1001_PORT 139
@@ -1453,6 +1454,8 @@ cifs_put_tcp_session(struct TCP_Server_I
return;
}
+ cifs_fscache_release_client_cookie(server);
+
list_del_init(&server->tcp_ses_list);
write_unlock(&cifs_tcp_ses_lock);
@@ -1572,6 +1575,7 @@ cifs_get_tcp_session(struct smb_vol *vol
goto out_err;
}
+ cifs_fscache_get_client_cookie(tcp_ses);
/* thread spawned, put it on the list */
write_lock(&cifs_tcp_ses_lock);
list_add(&tcp_ses->tcp_ses_list, &cifs_tcp_ses_list);
Index: cifs-2.6/fs/cifs/fscache.c
===================================================================
--- /dev/null
+++ cifs-2.6/fs/cifs/fscache.c
@@ -0,0 +1,47 @@
+/*
+ * fs/cifs/fscache.c - CIFS filesystem cache interface
+ *
+ * Copyright (c) 2010 Novell, Inc.
+ * Authors(s): Suresh Jayaraman (sjayaraman-l3A5Bk7waGM@public.gmane.org>
+ *
+ * This library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
+ * the GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/sched.h>
+#include <linux/mm.h>
+#include <linux/in6.h>
+
+#include "fscache.h"
+#include "cifsglob.h"
+#include "cifs_debug.h"
+
+void cifs_fscache_get_client_cookie(struct TCP_Server_Info *server)
+{
+ server->fscache =
+ fscache_acquire_cookie(cifs_fscache_netfs.primary_index,
+ &cifs_fscache_server_index_def, server);
+ cFYI(1, "CIFS: get client cookie (0x%p/0x%p)\n",
+ server, server->fscache);
+}
+
+void cifs_fscache_release_client_cookie(struct TCP_Server_Info *server)
+{
+ cFYI(1, "CIFS: release client cookie (0x%p/0x%p)\n",
+ server, server->fscache);
+ fscache_relinquish_cookie(server->fscache, 0);
+ server->fscache = NULL;
+}
+
Index: cifs-2.6/fs/cifs/fscache.h
===================================================================
--- cifs-2.6.orig/fs/cifs/fscache.h
+++ cifs-2.6/fs/cifs/fscache.h
@@ -27,14 +27,26 @@
#ifdef CONFIG_CIFS_FSCACHE
extern struct fscache_netfs cifs_fscache_netfs;
+extern const struct fscache_cookie_def cifs_fscache_server_index_def;
extern int cifs_fscache_register(void);
extern void cifs_fscache_unregister(void);
+/*
+ * fscache.c
+ */
+extern void cifs_fscache_get_client_cookie(struct TCP_Server_Info *);
+extern void cifs_fscache_release_client_cookie(struct TCP_Server_Info *);
+
#else /* CONFIG_CIFS_FSCACHE */
static inline int cifs_fscache_register(void) { return 0; }
static inline void cifs_fscache_unregister(void) {}
+static inline void
+cifs_fscache_get_client_cookie(struct TCP_Server_Info *server) {}
+static inline void
+cifs_fscache_get_client_cookie(struct TCP_Server_Info *server); {}
+
#endif /* CONFIG_CIFS_FSCACHE */
#endif /* _CIFS_FSCACHE_H */

View file

@ -0,0 +1,212 @@
From: Suresh Jayaraman <sjayaraman@suse.de>
Subject: [RFC][PATCH 07/10] cifs: FS-Cache page management
Date: Tue, 22 Jun 2010 20:53:48 +0530
Lines: 175
Message-ID: <1277220228-3635-1-git-send-email-sjayaraman@suse.de>
References: <yes>
Cc: linux-cifs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org, David Howells <dhowells@redhat.com>
To: Steve French <smfrench@gmail.com>
X-From: linux-kernel-owner@vger.kernel.org Tue Jun 22 17:44:27 2010
Return-path: <linux-kernel-owner@vger.kernel.org>
Envelope-to: glk-linux-kernel-3@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-kernel-owner@vger.kernel.org>)
id 1OR5eF-0008G7-BK
for glk-linux-kernel-3@lo.gmane.org; Tue, 22 Jun 2010 17:44:27 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1754757Ab0FVPoS (ORCPT <rfc822;glk-linux-kernel-3@m.gmane.org>);
Tue, 22 Jun 2010 11:44:18 -0400
Received: from victor.provo.novell.com ([137.65.250.26]:54214 "EHLO
victor.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1752542Ab0FVPoB (ORCPT
<rfc822;groupwise-SJayaraman@novell.com:0:0>);
Tue, 22 Jun 2010 11:44:01 -0400
Received: from localhost (prv-ext-foundry1int.gns.novell.com [137.65.251.240])
by victor.provo.novell.com with ESMTP; Tue, 22 Jun 2010 09:23:50 -0600
X-Mailer: git-send-email 1.6.4.2
In-Reply-To: <yes>
Sender: linux-kernel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-kernel.vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1001761>
Takes care of invalidation and release of FS-Cache marked pages and also
invalidation of the FsCache page flag when the inode is removed.
Signed-off-by: Suresh Jayaraman <sjayaraman@suse.de>
---
fs/cifs/cache.c | 31 +++++++++++++++++++++++++++++++
fs/cifs/file.c | 20 ++++++++++++++++++++
fs/cifs/fscache.c | 26 ++++++++++++++++++++++++++
fs/cifs/fscache.h | 16 ++++++++++++++++
4 files changed, 93 insertions(+), 0 deletions(-)
diff --git a/fs/cifs/cache.c b/fs/cifs/cache.c
index b205424..3a733c1 100644
--- a/fs/cifs/cache.c
+++ b/fs/cifs/cache.c
@@ -210,6 +210,36 @@ fscache_checkaux cifs_fscache_inode_check_aux(void *cookie_netfs_data,
return FSCACHE_CHECKAUX_OKAY;
}
+static void cifs_fscache_inode_now_uncached(void *cookie_netfs_data)
+{
+ struct cifsInodeInfo *cifsi = cookie_netfs_data;
+ struct pagevec pvec;
+ pgoff_t first;
+ int loop, nr_pages;
+
+ pagevec_init(&pvec, 0);
+ first = 0;
+
+ cFYI(1, "cifs inode 0x%p now uncached\n", cifsi);
+
+ for (;;) {
+ nr_pages = pagevec_lookup(&pvec,
+ cifsi->vfs_inode.i_mapping, first,
+ PAGEVEC_SIZE - pagevec_count(&pvec));
+ if (!nr_pages)
+ break;
+
+ for (loop = 0; loop < nr_pages; loop++)
+ ClearPageFsCache(pvec.pages[loop]);
+
+ first = pvec.pages[nr_pages - 1]->index + 1;
+
+ pvec.nr = nr_pages;
+ pagevec_release(&pvec);
+ cond_resched();
+ }
+}
+
const struct fscache_cookie_def cifs_fscache_inode_object_def = {
.name = "CIFS.uniqueid",
.type = FSCACHE_COOKIE_TYPE_DATAFILE,
@@ -217,4 +247,5 @@ const struct fscache_cookie_def cifs_fscache_inode_object_def = {
.get_attr = cifs_fscache_inode_get_attr,
.get_aux = cifs_fscache_inode_get_aux,
.check_aux = cifs_fscache_inode_check_aux,
+ .now_uncached = cifs_fscache_inode_now_uncached,
};
diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index 55ecb55..786ec04 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -2271,6 +2271,22 @@ out:
return rc;
}
+static int cifs_release_page(struct page *page, gfp_t gfp)
+{
+ if (PagePrivate(page))
+ return 0;
+
+ return cifs_fscache_release_page(page, gfp);
+}
+
+static void cifs_invalidate_page(struct page *page, unsigned long offset)
+{
+ struct cifsInodeInfo *cifsi = CIFS_I(page->mapping->host);
+
+ if (offset == 0)
+ cifs_fscache_invalidate_page(page, &cifsi->vfs_inode);
+}
+
static void
cifs_oplock_break(struct slow_work *work)
{
@@ -2344,6 +2360,8 @@ const struct address_space_operations cifs_addr_ops = {
.write_begin = cifs_write_begin,
.write_end = cifs_write_end,
.set_page_dirty = __set_page_dirty_nobuffers,
+ .releasepage = cifs_release_page,
+ .invalidatepage = cifs_invalidate_page,
/* .sync_page = cifs_sync_page, */
/* .direct_IO = */
};
@@ -2360,6 +2378,8 @@ const struct address_space_operations cifs_addr_ops_smallbuf = {
.write_begin = cifs_write_begin,
.write_end = cifs_write_end,
.set_page_dirty = __set_page_dirty_nobuffers,
+ .releasepage = cifs_release_page,
+ .invalidatepage = cifs_invalidate_page,
/* .sync_page = cifs_sync_page, */
/* .direct_IO = */
};
diff --git a/fs/cifs/fscache.c b/fs/cifs/fscache.c
index ddfd355..c09d3b8 100644
--- a/fs/cifs/fscache.c
+++ b/fs/cifs/fscache.c
@@ -130,3 +130,29 @@ void cifs_fscache_reset_inode_cookie(struct inode *inode)
}
}
+int cifs_fscache_release_page(struct page *page, gfp_t gfp)
+{
+ if (PageFsCache(page)) {
+ struct inode *inode = page->mapping->host;
+ struct cifsInodeInfo *cifsi = CIFS_I(inode);
+
+ cFYI(1, "CIFS: fscache release page (0x%p/0x%p)\n",
+ cifsi->fscache, page);
+ if (!fscache_maybe_release_page(cifsi->fscache, page, gfp))
+ return 0;
+ }
+
+ return 1;
+}
+
+void __cifs_fscache_invalidate_page(struct page *page, struct inode *inode)
+{
+ struct cifsInodeInfo *cifsi = CIFS_I(inode);
+ struct fscache_cookie *cookie = cifsi->fscache;
+
+ cFYI(1, "CIFS: fscache invalidatepage (0x%p/0x%p/0x%p)\n",
+ cookie, page, cifsi);
+ fscache_wait_on_page_write(cookie, page);
+ fscache_uncache_page(cookie, page);
+}
+
diff --git a/fs/cifs/fscache.h b/fs/cifs/fscache.h
index 836bb02..127cb0a 100644
--- a/fs/cifs/fscache.h
+++ b/fs/cifs/fscache.h
@@ -47,6 +47,16 @@ extern void cifs_fscache_release_inode_cookie(struct inode *);
extern void cifs_fscache_set_inode_cookie(struct inode *, struct file *);
extern void cifs_fscache_reset_inode_cookie(struct inode *);
+extern void __cifs_fscache_invalidate_page(struct page *, struct inode *);
+extern int cifs_fscache_release_page(struct page *page, gfp_t gfp);
+
+static inline void cifs_fscache_invalidate_page(struct page *page,
+ struct inode *inode)
+{
+ if (PageFsCache(page))
+ __cifs_fscache_invalidate_page(page, inode);
+}
+
#else /* CONFIG_CIFS_FSCACHE */
static inline int cifs_fscache_register(void) { return 0; }
static inline void cifs_fscache_unregister(void) {}
@@ -63,7 +73,13 @@ static inline void cifs_fscache_release_inode_cookie(struct inode *inode) {}
static inline void cifs_fscache_set_inode_cookie(struct inode *inode,
struct file *filp) {}
static inline void cifs_fscache_reset_inode_cookie(struct inode *inode) {}
+static inline void cifs_fscache_release_page(struct page *page, gfp_t gfp)
+{
+ return 1; /* May release page */
+}
+static inline int cifs_fscache_invalidate_page(struct page *page,
+ struct inode *) {}
#endif /* CONFIG_CIFS_FSCACHE */
--
1.6.4.2

View file

@ -0,0 +1,256 @@
From: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
Subject: [RFC][PATCH 09/10] cifs: read pages from FS-Cache
Date: Tue, 22 Jun 2010 20:54:21 +0530
Lines: 219
Message-ID: <1277220261-3717-1-git-send-email-sjayaraman@suse.de>
References: <yes>
Cc: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Tue Jun 22 17:44:46 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1OR5eX-0008O2-Q4
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Tue, 22 Jun 2010 17:44:46 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1752563Ab0FVPom (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Tue, 22 Jun 2010 11:44:42 -0400
Received: from victor.provo.novell.com ([137.65.250.26]:42741 "EHLO
victor.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1752542Ab0FVPok (ORCPT
<rfc822;groupwise-SJayaraman-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org:0:0>);
Tue, 22 Jun 2010 11:44:40 -0400
Received: from localhost (prv-ext-foundry1int.gns.novell.com [137.65.251.240])
by victor.provo.novell.com with ESMTP; Tue, 22 Jun 2010 09:24:22 -0600
X-Mailer: git-send-email 1.6.4.2
In-Reply-To: <yes>
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1001762>
Read pages from a FS-Cache data storage object into a CIFS inode.
Signed-off-by: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
---
fs/cifs/file.c | 19 ++++++++++++++
fs/cifs/fscache.c | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++
fs/cifs/fscache.h | 40 ++++++++++++++++++++++++++++-
3 files changed, 131 insertions(+), 1 deletions(-)
diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index 39c1ce0..42d2f25 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -1978,6 +1978,16 @@ static int cifs_readpages(struct file *file, struct address_space *mapping,
cifs_sb = CIFS_SB(file->f_path.dentry->d_sb);
pTcon = cifs_sb->tcon;
+ /*
+ * Reads as many pages as possible from fscache. Returns -ENOBUFS
+ * immediately if the cookie is negative
+ */
+ rc = cifs_readpages_from_fscache(mapping->host, mapping, page_list,
+ &num_pages);
+ cFYI(1, "CIFS: readpages_from_fscache returned %d\n", rc);
+ if (rc == 0)
+ goto read_complete;
+
cFYI(DBG2, "rpages: num pages %d", num_pages);
for (i = 0; i < num_pages; ) {
unsigned contig_pages;
@@ -2090,6 +2100,7 @@ static int cifs_readpages(struct file *file, struct address_space *mapping,
smb_read_data = NULL;
}
+read_complete:
FreeXid(xid);
return rc;
}
@@ -2100,6 +2111,12 @@ static int cifs_readpage_worker(struct file *file, struct page *page,
char *read_data;
int rc;
+ /* Is the page cached? */
+ rc = cifs_readpage_from_fscache(file->f_path.dentry->d_inode, page);
+ cFYI(1, "CIFS: cifs_readpage_from_fscache returned %d\n", rc);
+ if (rc == 0)
+ goto read_complete;
+
page_cache_get(page);
read_data = kmap(page);
/* for reads over a certain size could initiate async read ahead */
@@ -2128,6 +2145,8 @@ static int cifs_readpage_worker(struct file *file, struct page *page,
io_error:
kunmap(page);
page_cache_release(page);
+
+read_complete:
return rc;
}
diff --git a/fs/cifs/fscache.c b/fs/cifs/fscache.c
index 13e47d5..6813737 100644
--- a/fs/cifs/fscache.c
+++ b/fs/cifs/fscache.c
@@ -145,6 +145,79 @@ int cifs_fscache_release_page(struct page *page, gfp_t gfp)
return 1;
}
+static void cifs_readpage_from_fscache_complete(struct page *page, void *ctx,
+ int error)
+{
+ cFYI(1, "CFS: readpage_from_fscache_complete (0x%p/%d)\n",
+ page, error);
+ if (!error)
+ SetPageUptodate(page);
+ unlock_page(page);
+}
+
+/*
+ * Retrieve a page from FS-Cache
+ */
+int __cifs_readpage_from_fscache(struct inode *inode, struct page *page)
+{
+ int ret;
+
+ cFYI(1, "CIFS: readpage_from_fscache(fsc:%p, p:%p, i:0x%p\n",
+ CIFS_I(inode)->fscache, page, inode);
+ ret = fscache_read_or_alloc_page(CIFS_I(inode)->fscache, page,
+ cifs_readpage_from_fscache_complete,
+ NULL,
+ GFP_KERNEL);
+ switch (ret) {
+
+ case 0: /* page found in fscache, read submitted */
+ cFYI(1, "CIFS: readpage_from_fscache: submitted\n");
+ return ret;
+ case -ENOBUFS: /* page won't be cached */
+ case -ENODATA: /* page not in cache */
+ cFYI(1, "CIFS: readpage_from_fscache %d\n", ret);
+ return 1;
+
+ default:
+ cFYI(1, "unknown error ret = %d", ret);
+ }
+ return ret;
+}
+
+/*
+ * Retrieve a set of pages from FS-Cache
+ */
+int __cifs_readpages_from_fscache(struct inode *inode,
+ struct address_space *mapping,
+ struct list_head *pages,
+ unsigned *nr_pages)
+{
+ int ret;
+
+ cFYI(1, "CIFS: __cifs_readpages_from_fscache (0x%p/%u/0x%p)\n",
+ CIFS_I(inode)->fscache, *nr_pages, inode);
+ ret = fscache_read_or_alloc_pages(CIFS_I(inode)->fscache, mapping,
+ pages, nr_pages,
+ cifs_readpage_from_fscache_complete,
+ NULL,
+ mapping_gfp_mask(mapping));
+ switch (ret) {
+ case 0: /* read submitted to the cache for all pages */
+ cFYI(1, "CIFS: readpages_from_fscache\n");
+ return ret;
+
+ case -ENOBUFS: /* some pages are not cached and can't be */
+ case -ENODATA: /* some pages are not cached */
+ cFYI(1, "CIFS: readpages_from_fscache: no page\n");
+ return 1;
+
+ default:
+ cFYI(1, "unknown error ret = %d", ret);
+ }
+
+ return ret;
+}
+
void __cifs_readpage_to_fscache(struct inode *inode, struct page *page)
{
int ret;
diff --git a/fs/cifs/fscache.h b/fs/cifs/fscache.h
index e34d8ab..03bd3fe 100644
--- a/fs/cifs/fscache.h
+++ b/fs/cifs/fscache.h
@@ -31,7 +31,6 @@ extern const struct fscache_cookie_def cifs_fscache_server_index_def;
extern const struct fscache_cookie_def cifs_fscache_super_index_def;
extern const struct fscache_cookie_def cifs_fscache_inode_object_def;
-
extern int cifs_fscache_register(void);
extern void cifs_fscache_unregister(void);
@@ -49,6 +48,11 @@ extern void cifs_fscache_reset_inode_cookie(struct inode *);
extern void __cifs_fscache_invalidate_page(struct page *, struct inode *);
extern int cifs_fscache_release_page(struct page *page, gfp_t gfp);
+extern int __cifs_readpage_from_fscache(struct inode *, struct page *);
+extern int __cifs_readpages_from_fscache(struct inode *,
+ struct address_space *,
+ struct list_head *,
+ unsigned *);
extern void __cifs_readpage_to_fscache(struct inode *, struct page *);
@@ -59,6 +63,26 @@ static inline void cifs_fscache_invalidate_page(struct page *page,
__cifs_fscache_invalidate_page(page, inode);
}
+static inline int cifs_readpage_from_fscache(struct inode *inode,
+ struct page *page)
+{
+ if (CIFS_I(inode)->fscache)
+ return __cifs_readpage_from_fscache(inode, page);
+
+ return -ENOBUFS;
+}
+
+static inline int cifs_readpages_from_fscache(struct inode *inode,
+ struct address_space *mapping,
+ struct list_head *pages,
+ unsigned *nr_pages)
+{
+ if (CIFS_I(inode)->fscache)
+ return __cifs_readpages_from_fscache(inode, mapping, pages,
+ nr_pages);
+ return -ENOBUFS;
+}
+
static inline void cifs_readpage_to_fscache(struct inode *inode,
struct page *page)
{
@@ -89,6 +113,20 @@ static inline void cifs_fscache_release_page(struct page *page, gfp_t gfp)
static inline int cifs_fscache_invalidate_page(struct page *page,
struct inode *) {}
+static inline int
+cifs_readpage_from_fscache(struct inode *inode, struct page *page)
+{
+ return -ENOBUFS;
+}
+
+static inline int cifs_readpages_from_fscache(struct inode *inode,
+ struct address_space *mapping,
+ struct list_head *pages,
+ unsigned *nr_pages)
+{
+ return -ENOBUFS;
+}
+
static inline void cifs_readpage_to_fscache(struct inode *inode,
struct page *page) {}
--
1.6.4.2

View file

@ -0,0 +1,139 @@
From: Suresh Jayaraman <sjayaraman@suse.de>
Subject: [RFC][PATCH 08/10] cifs: store pages into local cache
Date: Tue, 22 Jun 2010 20:54:00 +0530
Lines: 102
Message-ID: <1277220240-3674-1-git-send-email-sjayaraman@suse.de>
References: <yes>
Cc: linux-cifs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org, David Howells <dhowells@redhat.com>
To: Steve French <smfrench@gmail.com>
X-From: linux-fsdevel-owner@vger.kernel.org Tue Jun 22 17:45:09 2010
Return-path: <linux-fsdevel-owner@vger.kernel.org>
Envelope-to: lnx-linux-fsdevel@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-fsdevel-owner@vger.kernel.org>)
id 1OR5ev-00007O-6e
for lnx-linux-fsdevel@lo.gmane.org; Tue, 22 Jun 2010 17:45:09 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1755015Ab0FVPon (ORCPT <rfc822;lnx-linux-fsdevel@m.gmane.org>);
Tue, 22 Jun 2010 11:44:43 -0400
Received: from victor.provo.novell.com ([137.65.250.26]:58250 "EHLO
victor.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1751265Ab0FVPok (ORCPT
<rfc822;groupwise-SJayaraman@novell.com:0:0>);
Tue, 22 Jun 2010 11:44:40 -0400
Received: from localhost (prv-ext-foundry1int.gns.novell.com [137.65.251.240])
by victor.provo.novell.com with ESMTP; Tue, 22 Jun 2010 09:24:02 -0600
X-Mailer: git-send-email 1.6.4.2
In-Reply-To: <yes>
Sender: linux-fsdevel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-fsdevel.vger.kernel.org>
X-Mailing-List: linux-fsdevel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1001764>
Store pages from an CIFS inode into the data storage object associated with
that inode.
Signed-off-by: Suresh Jayaraman <sjayaraman@suse.de>
---
fs/cifs/file.c | 6 ++++++
fs/cifs/fscache.c | 13 +++++++++++++
fs/cifs/fscache.h | 11 +++++++++++
3 files changed, 30 insertions(+), 0 deletions(-)
diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index 786ec04..39c1ce0 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -2060,6 +2060,8 @@ static int cifs_readpages(struct file *file, struct address_space *mapping,
we will hit it on next read */
/* break; */
+ /* send this page to FS-Cache */
+ cifs_readpage_to_fscache(mapping->host, page);
}
} else {
cFYI(1, "No bytes read (%d) at offset %lld . "
@@ -2117,6 +2119,10 @@ static int cifs_readpage_worker(struct file *file, struct page *page,
flush_dcache_page(page);
SetPageUptodate(page);
+
+ /* send this page to the cache */
+ cifs_readpage_to_fscache(file->f_path.dentry->d_inode, page);
+
rc = 0;
io_error:
diff --git a/fs/cifs/fscache.c b/fs/cifs/fscache.c
index c09d3b8..13e47d5 100644
--- a/fs/cifs/fscache.c
+++ b/fs/cifs/fscache.c
@@ -145,6 +145,19 @@ int cifs_fscache_release_page(struct page *page, gfp_t gfp)
return 1;
}
+void __cifs_readpage_to_fscache(struct inode *inode, struct page *page)
+{
+ int ret;
+
+ cFYI(1, "CIFS: readpage_to_fscache(fsc: %p, p: %p, i: %p\n",
+ CIFS_I(inode)->fscache, page, inode);
+ ret = fscache_write_page(CIFS_I(inode)->fscache, page, GFP_KERNEL);
+ cFYI(1, "CIFS: fscache_write_page returned %d\n", ret);
+
+ if (ret != 0)
+ fscache_uncache_page(CIFS_I(inode)->fscache, page);
+}
+
void __cifs_fscache_invalidate_page(struct page *page, struct inode *inode)
{
struct cifsInodeInfo *cifsi = CIFS_I(inode);
diff --git a/fs/cifs/fscache.h b/fs/cifs/fscache.h
index 127cb0a..e34d8ab 100644
--- a/fs/cifs/fscache.h
+++ b/fs/cifs/fscache.h
@@ -50,6 +50,8 @@ extern void cifs_fscache_reset_inode_cookie(struct inode *);
extern void __cifs_fscache_invalidate_page(struct page *, struct inode *);
extern int cifs_fscache_release_page(struct page *page, gfp_t gfp);
+extern void __cifs_readpage_to_fscache(struct inode *, struct page *);
+
static inline void cifs_fscache_invalidate_page(struct page *page,
struct inode *inode)
{
@@ -57,6 +59,13 @@ static inline void cifs_fscache_invalidate_page(struct page *page,
__cifs_fscache_invalidate_page(page, inode);
}
+static inline void cifs_readpage_to_fscache(struct inode *inode,
+ struct page *page)
+{
+ if (PageFsCache(page))
+ __cifs_readpage_to_fscache(inode, page);
+}
+
#else /* CONFIG_CIFS_FSCACHE */
static inline int cifs_fscache_register(void) { return 0; }
static inline void cifs_fscache_unregister(void) {}
@@ -80,6 +89,8 @@ static inline void cifs_fscache_release_page(struct page *page, gfp_t gfp)
static inline int cifs_fscache_invalidate_page(struct page *page,
struct inode *) {}
+static inline void cifs_readpage_to_fscache(struct inode *inode,
+ struct page *page) {}
#endif /* CONFIG_CIFS_FSCACHE */
--
1.6.4.2
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

View file

@ -0,0 +1,355 @@
From: Suresh Jayaraman <sjayaraman@suse.de>
Subject: [RFC][PATCH 06/10] cifs: define inode-level cache object and register them
Date: Tue, 22 Jun 2010 20:53:33 +0530
Lines: 318
Message-ID: <1277220214-3597-1-git-send-email-sjayaraman@suse.de>
References: <yes>
Cc: linux-cifs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org, David Howells <dhowells@redhat.com>
To: Steve French <smfrench@gmail.com>
X-From: linux-kernel-owner@vger.kernel.org Tue Jun 22 17:45:30 2010
Return-path: <linux-kernel-owner@vger.kernel.org>
Envelope-to: glk-linux-kernel-3@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-kernel-owner@vger.kernel.org>)
id 1OR5fF-0000Ka-Na
for glk-linux-kernel-3@lo.gmane.org; Tue, 22 Jun 2010 17:45:30 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1755952Ab0FVPpP (ORCPT <rfc822;glk-linux-kernel-3@m.gmane.org>);
Tue, 22 Jun 2010 11:45:15 -0400
Received: from victor.provo.novell.com ([137.65.250.26]:59441 "EHLO
victor.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1751397Ab0FVPoA (ORCPT
<rfc822;groupwise-SJayaraman@novell.com:0:0>);
Tue, 22 Jun 2010 11:44:00 -0400
Received: from localhost (prv-ext-foundry1int.gns.novell.com [137.65.251.240])
by victor.provo.novell.com with ESMTP; Tue, 22 Jun 2010 09:23:35 -0600
X-Mailer: git-send-email 1.6.4.2
In-Reply-To: <yes>
Sender: linux-kernel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-kernel.vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1001765>
Define inode-level data storage objects (managed by cifsInodeInfo structs).
Each inode-level object is created in a super-block level object and is itself
a data storage object in to which pages from the inode are stored.
The inode object is keyed by UniqueId. The coherency data being used is
LastWriteTime and the file size.
Signed-off-by: Suresh Jayaraman <sjayaraman@suse.de>
---
fs/cifs/cache.c | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++
fs/cifs/cifsfs.c | 7 ++++
fs/cifs/cifsglob.h | 3 +
fs/cifs/file.c | 6 +++
fs/cifs/fscache.c | 68 +++++++++++++++++++++++++++++++++++++++++++++
fs/cifs/fscache.h | 12 +++++++
fs/cifs/inode.c | 4 ++
7 files changed, 180 insertions(+)
Index: cifs-2.6/fs/cifs/cache.c
===================================================================
--- cifs-2.6.orig/fs/cifs/cache.c
+++ cifs-2.6/fs/cifs/cache.c
@@ -138,3 +138,83 @@ const struct fscache_cookie_def cifs_fsc
.get_key = cifs_super_get_key,
};
+/*
+ * Auxiliary data attached to CIFS inode within the cache
+ */
+struct cifs_fscache_inode_auxdata {
+ struct timespec last_write_time;
+ loff_t size;
+};
+
+static uint16_t cifs_fscache_inode_get_key(const void *cookie_netfs_data,
+ void *buffer, uint16_t maxbuf)
+{
+ const struct cifsInodeInfo *cifsi = cookie_netfs_data;
+ uint16_t keylen;
+
+ /* use the UniqueId as the key */
+ keylen = sizeof(cifsi->uniqueid);
+ if (keylen > maxbuf)
+ keylen = 0;
+ else
+ memcpy(buffer, &cifsi->uniqueid, keylen);
+
+ return keylen;
+}
+
+static void
+cifs_fscache_inode_get_attr(const void *cookie_netfs_data, uint64_t *size)
+{
+ const struct cifsInodeInfo *cifsi = cookie_netfs_data;
+
+ *size = cifsi->vfs_inode.i_size;
+}
+
+static uint16_t
+cifs_fscache_inode_get_aux(const void *cookie_netfs_data, void *buffer,
+ uint16_t maxbuf)
+{
+ struct cifs_fscache_inode_auxdata auxdata;
+ const struct cifsInodeInfo *cifsi = cookie_netfs_data;
+
+ memset(&auxdata, 0, sizeof(auxdata));
+ auxdata.size = cifsi->vfs_inode.i_size;
+ auxdata.last_write_time = cifsi->vfs_inode.i_ctime;
+
+ if (maxbuf > sizeof(auxdata))
+ maxbuf = sizeof(auxdata);
+
+ memcpy(buffer, &auxdata, maxbuf);
+
+ return maxbuf;
+}
+
+static enum
+fscache_checkaux cifs_fscache_inode_check_aux(void *cookie_netfs_data,
+ const void *data,
+ uint16_t datalen)
+{
+ struct cifs_fscache_inode_auxdata auxdata;
+ struct cifsInodeInfo *cifsi = cookie_netfs_data;
+
+ if (datalen != sizeof(auxdata))
+ return FSCACHE_CHECKAUX_OBSOLETE;
+
+ memset(&auxdata, 0, sizeof(auxdata));
+ auxdata.size = cifsi->vfs_inode.i_size;
+ auxdata.last_write_time = cifsi->vfs_inode.i_ctime;
+
+ if (memcmp(data, &auxdata, datalen) != 0)
+ return FSCACHE_CHECKAUX_OBSOLETE;
+
+ return FSCACHE_CHECKAUX_OKAY;
+}
+
+const struct fscache_cookie_def cifs_fscache_inode_object_def = {
+ .name = "CIFS.uniqueid",
+ .type = FSCACHE_COOKIE_TYPE_DATAFILE,
+ .get_key = cifs_fscache_inode_get_key,
+ .get_attr = cifs_fscache_inode_get_attr,
+ .get_aux = cifs_fscache_inode_get_aux,
+ .check_aux = cifs_fscache_inode_check_aux,
+};
Index: cifs-2.6/fs/cifs/cifsfs.c
===================================================================
--- cifs-2.6.orig/fs/cifs/cifsfs.c
+++ cifs-2.6/fs/cifs/cifsfs.c
@@ -330,6 +330,12 @@ cifs_destroy_inode(struct inode *inode)
}
static void
+cifs_clear_inode(struct inode *inode)
+{
+ cifs_fscache_release_inode_cookie(inode);
+}
+
+static void
cifs_show_address(struct seq_file *s, struct TCP_Server_Info *server)
{
seq_printf(s, ",addr=");
@@ -490,6 +496,7 @@ static const struct super_operations cif
.alloc_inode = cifs_alloc_inode,
.destroy_inode = cifs_destroy_inode,
.drop_inode = cifs_drop_inode,
+ .clear_inode = cifs_clear_inode,
/* .delete_inode = cifs_delete_inode, */ /* Do not need above
function unless later we add lazy close of inodes or unless the
kernel forgets to call us with the same number of releases (closes)
Index: cifs-2.6/fs/cifs/cifsglob.h
===================================================================
--- cifs-2.6.orig/fs/cifs/cifsglob.h
+++ cifs-2.6/fs/cifs/cifsglob.h
@@ -407,6 +407,9 @@ struct cifsInodeInfo {
bool invalid_mapping:1; /* pagecache is invalid */
u64 server_eof; /* current file size on server */
u64 uniqueid; /* server inode number */
+#ifdef CONFIG_CIFS_FSCACHE
+ struct fscache_cookie *fscache;
+#endif
struct inode vfs_inode;
};
Index: cifs-2.6/fs/cifs/file.c
===================================================================
--- cifs-2.6.orig/fs/cifs/file.c
+++ cifs-2.6/fs/cifs/file.c
@@ -40,6 +40,7 @@
#include "cifs_unicode.h"
#include "cifs_debug.h"
#include "cifs_fs_sb.h"
+#include "fscache.h"
static inline int cifs_convert_flags(unsigned int flags)
{
@@ -282,6 +283,9 @@ int cifs_open(struct inode *inode, struc
CIFSSMBClose(xid, tcon, netfid);
rc = -ENOMEM;
}
+
+ cifs_fscache_set_inode_cookie(inode, file);
+
goto out;
} else if ((rc == -EINVAL) || (rc == -EOPNOTSUPP)) {
if (tcon->ses->serverNOS)
@@ -373,6 +377,8 @@ int cifs_open(struct inode *inode, struc
goto out;
}
+ cifs_fscache_set_inode_cookie(inode, file);
+
if (oplock & CIFS_CREATE_ACTION) {
/* time to set mode which we can not set earlier due to
problems creating new read-only files */
Index: cifs-2.6/fs/cifs/fscache.c
===================================================================
--- cifs-2.6.orig/fs/cifs/fscache.c
+++ cifs-2.6/fs/cifs/fscache.c
@@ -62,3 +62,71 @@ void cifs_fscache_release_super_cookie(s
tcon->fscache = NULL;
}
+static void cifs_fscache_enable_inode_cookie(struct inode *inode)
+{
+ struct cifsInodeInfo *cifsi = CIFS_I(inode);
+ struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb);
+
+ if (cifsi->fscache)
+ return;
+
+ cifsi->fscache = fscache_acquire_cookie(cifs_sb->tcon->fscache,
+ &cifs_fscache_inode_object_def,
+ cifsi);
+ cFYI(1, "CIFS: got FH cookie (0x%p/0x%p/0x%p)\n",
+ cifs_sb->tcon, cifsi, cifsi->fscache);
+}
+
+void cifs_fscache_release_inode_cookie(struct inode *inode)
+{
+ struct cifsInodeInfo *cifsi = CIFS_I(inode);
+
+ if (cifsi->fscache) {
+ cFYI(1, "CIFS releasing inode cookie (0x%p/0x%p)\n",
+ cifsi, cifsi->fscache);
+ fscache_relinquish_cookie(cifsi->fscache, 0);
+ cifsi->fscache = NULL;
+ }
+}
+
+static void cifs_fscache_disable_inode_cookie(struct inode *inode)
+{
+ struct cifsInodeInfo *cifsi = CIFS_I(inode);
+
+ if (cifsi->fscache) {
+ cFYI(1, "CIFS disabling inode cookie (0x%p/0x%p)\n",
+ cifsi, cifsi->fscache);
+ fscache_relinquish_cookie(cifsi->fscache, 1);
+ cifsi->fscache = NULL;
+ }
+}
+
+void cifs_fscache_set_inode_cookie(struct inode *inode, struct file *filp)
+{
+ /* BB: parallel opens - need locking? */
+ if ((filp->f_flags & O_ACCMODE) != O_RDONLY)
+ cifs_fscache_disable_inode_cookie(inode);
+ else {
+ cifs_fscache_enable_inode_cookie(inode);
+ cFYI(1, "CIFS: fscache inode cookie set\n");
+ }
+}
+
+void cifs_fscache_reset_inode_cookie(struct inode *inode)
+{
+ struct cifsInodeInfo *cifsi = CIFS_I(inode);
+ struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb);
+ struct fscache_cookie *old = cifsi->fscache;
+
+ if (cifsi->fscache) {
+ /* retire the current fscache cache and get a new one */
+ fscache_relinquish_cookie(cifsi->fscache, 1);
+
+ cifsi->fscache = fscache_acquire_cookie(cifs_sb->tcon->fscache,
+ &cifs_fscache_inode_object_def,
+ cifsi);
+ cFYI(1, "CIFS: new cookie (0x%p/0x%p) oldcookie 0x%p\n",
+ cifsi, cifsi->fscache, old);
+ }
+}
+
Index: cifs-2.6/fs/cifs/fscache.h
===================================================================
--- cifs-2.6.orig/fs/cifs/fscache.h
+++ cifs-2.6/fs/cifs/fscache.h
@@ -29,6 +29,8 @@
extern struct fscache_netfs cifs_fscache_netfs;
extern const struct fscache_cookie_def cifs_fscache_server_index_def;
extern const struct fscache_cookie_def cifs_fscache_super_index_def;
+extern const struct fscache_cookie_def cifs_fscache_inode_object_def;
+
extern int cifs_fscache_register(void);
extern void cifs_fscache_unregister(void);
@@ -41,6 +43,10 @@ extern void cifs_fscache_release_client_
extern void cifs_fscache_get_super_cookie(struct cifsTconInfo *);
extern void cifs_fscache_release_super_cookie(struct cifsTconInfo *);
+extern void cifs_fscache_release_inode_cookie(struct inode *);
+extern void cifs_fscache_set_inode_cookie(struct inode *, struct file *);
+extern void cifs_fscache_reset_inode_cookie(struct inode *);
+
#else /* CONFIG_CIFS_FSCACHE */
static inline int cifs_fscache_register(void) { return 0; }
static inline void cifs_fscache_unregister(void) {}
@@ -53,6 +59,12 @@ static inline void cifs_fscache_get_supe
static inline void
cifs_fscache_release_super_cookie(struct cifsTconInfo *tcon) {}
+static inline void cifs_fscache_release_inode_cookie(struct inode *inode) {}
+static inline void cifs_fscache_set_inode_cookie(struct inode *inode,
+ struct file *filp) {}
+static inline void cifs_fscache_reset_inode_cookie(struct inode *inode) {}
+
+
#endif /* CONFIG_CIFS_FSCACHE */
#endif /* _CIFS_FSCACHE_H */
Index: cifs-2.6/fs/cifs/inode.c
===================================================================
--- cifs-2.6.orig/fs/cifs/inode.c
+++ cifs-2.6/fs/cifs/inode.c
@@ -29,6 +29,7 @@
#include "cifsproto.h"
#include "cifs_debug.h"
#include "cifs_fs_sb.h"
+#include "fscache.h"
static void cifs_set_ops(struct inode *inode, const bool is_dfs_referral)
@@ -776,6 +777,8 @@ retry_iget5_locked:
inode->i_flags |= S_NOATIME | S_NOCMTIME;
if (inode->i_state & I_NEW) {
inode->i_ino = hash;
+ /* initialize per-inode cache cookie pointer */
+ CIFS_I(inode)->fscache = NULL;
unlock_new_inode(inode);
}
}
@@ -1568,6 +1571,7 @@ cifs_invalidate_mapping(struct inode *in
cifs_i->write_behind_rc = rc;
}
invalidate_remote_inode(inode);
+ cifs_fscache_reset_inode_cookie(inode);
}
int cifs_revalidate_file(struct file *filp)

View file

@ -0,0 +1,214 @@
From: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
Subject: [RFC][PATCH 05/10] cifs: define superblock-level cache index objects and register them
Date: Tue, 22 Jun 2010 20:53:26 +0530
Lines: 177
Message-ID: <1277220206-3559-1-git-send-email-sjayaraman@suse.de>
References: <yes>
Cc: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Tue Jun 22 17:45:50 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1OR5fZ-0000Vj-Mj
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Tue, 22 Jun 2010 17:45:50 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1752511Ab0FVPpJ (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Tue, 22 Jun 2010 11:45:09 -0400
Received: from victor.provo.novell.com ([137.65.250.26]:56189 "EHLO
victor.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1752441Ab0FVPoA (ORCPT
<rfc822;groupwise-SJayaraman-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org:0:0>);
Tue, 22 Jun 2010 11:44:00 -0400
Received: from localhost (prv-ext-foundry1int.gns.novell.com [137.65.251.240])
by victor.provo.novell.com with ESMTP; Tue, 22 Jun 2010 09:23:29 -0600
X-Mailer: git-send-email 1.6.4.2
In-Reply-To: <yes>
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1001766>
Define superblock-level cache index objects (managed by cifsTconInfo structs).
Each superblock object is created in a server-level index object and in itself
an index into which inode-level objects are inserted.
Currently, the superblock objects are keyed by sharename.
Signed-off-by: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
---
fs/cifs/cache.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++
fs/cifs/cifsglob.h | 3 ++
fs/cifs/connect.c | 4 +++
fs/cifs/fscache.c | 17 ++++++++++++++
fs/cifs/fscache.h | 6 +++++
5 files changed, 92 insertions(+)
Index: cifs-2.6/fs/cifs/cache.c
===================================================================
--- cifs-2.6.orig/fs/cifs/cache.c
+++ cifs-2.6/fs/cifs/cache.c
@@ -76,3 +76,65 @@ const struct fscache_cookie_def cifs_fsc
.type = FSCACHE_COOKIE_TYPE_INDEX,
.get_key = cifs_server_get_key,
};
+
+static char *extract_sharename(const char *treename)
+{
+ const char *src;
+ char *delim, *dst;
+ int len;
+
+ /* skip double chars at the beginning */
+ src = treename + 2;
+
+ /* share name is always preceded by '\\' now */
+ delim = strchr(src, '\\');
+ if (!delim)
+ return ERR_PTR(-EINVAL);
+ delim++;
+ len = strlen(delim);
+
+ /* caller has to free the memory */
+ dst = kstrndup(delim, len, GFP_KERNEL);
+ if (!dst)
+ return ERR_PTR(-ENOMEM);
+
+ return dst;
+}
+
+/*
+ * Superblock object currently keyed by share name
+ */
+static uint16_t cifs_super_get_key(const void *cookie_netfs_data, void *buffer,
+ uint16_t maxbuf)
+{
+ const struct cifsTconInfo *tcon = cookie_netfs_data;
+ char *sharename;
+ uint16_t len;
+
+ sharename = extract_sharename(tcon->treeName);
+ if (IS_ERR(sharename)) {
+ cFYI(1, "CIFS: couldn't extract sharename\n");
+ sharename = NULL;
+ return 0;
+ }
+
+ len = strlen(sharename);
+ if (len > maxbuf)
+ return 0;
+
+ memcpy(buffer, sharename, len);
+
+ kfree(sharename);
+
+ return len;
+}
+
+/*
+ * Superblock object for FS-Cache
+ */
+const struct fscache_cookie_def cifs_fscache_super_index_def = {
+ .name = "CIFS.super",
+ .type = FSCACHE_COOKIE_TYPE_INDEX,
+ .get_key = cifs_super_get_key,
+};
+
Index: cifs-2.6/fs/cifs/cifsglob.h
===================================================================
--- cifs-2.6.orig/fs/cifs/cifsglob.h
+++ cifs-2.6/fs/cifs/cifsglob.h
@@ -317,6 +317,9 @@ struct cifsTconInfo {
bool local_lease:1; /* check leases (only) on local system not remote */
bool broken_posix_open; /* e.g. Samba server versions < 3.3.2, 3.2.9 */
bool need_reconnect:1; /* connection reset, tid now invalid */
+#ifdef CONFIG_CIFS_FSCACHE
+ struct fscache_cookie *fscache; /* cookie for share */
+#endif
/* BB add field for back pointer to sb struct(s)? */
};
Index: cifs-2.6/fs/cifs/connect.c
===================================================================
--- cifs-2.6.orig/fs/cifs/connect.c
+++ cifs-2.6/fs/cifs/connect.c
@@ -1773,6 +1773,8 @@ cifs_put_tcon(struct cifsTconInfo *tcon)
list_del_init(&tcon->tcon_list);
write_unlock(&cifs_tcp_ses_lock);
+ cifs_fscache_release_super_cookie(tcon);
+
xid = GetXid();
CIFSSMBTDis(xid, tcon);
_FreeXid(xid);
@@ -1843,6 +1845,8 @@ cifs_get_tcon(struct cifsSesInfo *ses, s
tcon->nocase = volume_info->nocase;
tcon->local_lease = volume_info->local_lease;
+ cifs_fscache_get_super_cookie(tcon);
+
write_lock(&cifs_tcp_ses_lock);
list_add(&tcon->tcon_list, &ses->tcon_list);
write_unlock(&cifs_tcp_ses_lock);
Index: cifs-2.6/fs/cifs/fscache.c
===================================================================
--- cifs-2.6.orig/fs/cifs/fscache.c
+++ cifs-2.6/fs/cifs/fscache.c
@@ -45,3 +45,20 @@ void cifs_fscache_release_client_cookie(
server->fscache = NULL;
}
+void cifs_fscache_get_super_cookie(struct cifsTconInfo *tcon)
+{
+ tcon->fscache =
+ fscache_acquire_cookie(tcon->ses->server->fscache,
+ &cifs_fscache_super_index_def, tcon);
+ cFYI(1, "CIFS: get superblock cookie (0x%p/0x%p)\n",
+ tcon, tcon->fscache);
+}
+
+void cifs_fscache_release_super_cookie(struct cifsTconInfo *tcon)
+{
+ cFYI(1, "CIFS: releasing superblock cookie (0x%p/0x%p)\n",
+ tcon, tcon->fscache);
+ fscache_relinquish_cookie(tcon->fscache, 0);
+ tcon->fscache = NULL;
+}
+
Index: cifs-2.6/fs/cifs/fscache.h
===================================================================
--- cifs-2.6.orig/fs/cifs/fscache.h
+++ cifs-2.6/fs/cifs/fscache.h
@@ -28,6 +28,7 @@
extern struct fscache_netfs cifs_fscache_netfs;
extern const struct fscache_cookie_def cifs_fscache_server_index_def;
+extern const struct fscache_cookie_def cifs_fscache_super_index_def;
extern int cifs_fscache_register(void);
extern void cifs_fscache_unregister(void);
@@ -37,6 +38,8 @@ extern void cifs_fscache_unregister(void
*/
extern void cifs_fscache_get_client_cookie(struct TCP_Server_Info *);
extern void cifs_fscache_release_client_cookie(struct TCP_Server_Info *);
+extern void cifs_fscache_get_super_cookie(struct cifsTconInfo *);
+extern void cifs_fscache_release_super_cookie(struct cifsTconInfo *);
#else /* CONFIG_CIFS_FSCACHE */
static inline int cifs_fscache_register(void) { return 0; }
@@ -46,6 +49,9 @@ static inline void
cifs_fscache_get_client_cookie(struct TCP_Server_Info *server) {}
static inline void
cifs_fscache_get_client_cookie(struct TCP_Server_Info *server); {}
+static inline void cifs_fscache_get_super_cookie(struct cifsTconInfo *tcon) {}
+static inline void
+cifs_fscache_release_super_cookie(struct cifsTconInfo *tcon) {}
#endif /* CONFIG_CIFS_FSCACHE */

View file

@ -0,0 +1,85 @@
From: Jeff Layton <jlayton-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>
Subject: Re: [RFC][PATCH 02/10] cifs: guard cifsglob.h against multiple
inclusion
Date: Tue, 22 Jun 2010 17:37:42 -0400
Lines: 35
Message-ID: <20100622173742.448e1e94@corrin.poochiereds.net>
References: <yes>
<1277220170-3442-1-git-send-email-sjayaraman@suse.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Cc: Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Tue Jun 22 23:36:08 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1ORB8Z-00027v-R8
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Tue, 22 Jun 2010 23:36:08 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1751663Ab0FVVfq (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Tue, 22 Jun 2010 17:35:46 -0400
Received: from cdptpa-omtalb.mail.rr.com ([75.180.132.121]:46190 "EHLO
cdptpa-omtalb.mail.rr.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1751933Ab0FVVfo (ORCPT
<rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>); Tue, 22 Jun 2010 17:35:44 -0400
X-Authority-Analysis: v=1.0 c=1 a=Y4kVDsoNLLAA:10 a=yQWWgrYGNuUA:10 a=kj9zAlcOel0A:10 a=hGzw-44bAAAA:8 a=6UT2YofcClCzWf3PPoQA:9 a=Ipo6nwFRv7ENfF13HvmH_iG48b8A:4 a=CjuIK1q_8ugA:10 a=0kPLrQdw3YYA:10 a=dowx1zmaLagA:10
X-Cloudmark-Score: 0
X-Originating-IP: 71.70.153.3
Received: from [71.70.153.3] ([71.70.153.3:49036] helo=mail.poochiereds.net)
by cdptpa-oedge01.mail.rr.com (envelope-from <jlayton-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>)
(ecelerity 2.2.2.39 r()) with ESMTP
id 29/22-24471-DAC212C4; Tue, 22 Jun 2010 21:35:42 +0000
Received: from corrin.poochiereds.net (unknown [65.88.2.5])
by mail.poochiereds.net (Postfix) with ESMTPSA id 1C5A1580F4;
Tue, 22 Jun 2010 17:35:41 -0400 (EDT)
In-Reply-To: <1277220170-3442-1-git-send-email-sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-Mailer: Claws Mail 3.7.6 (GTK+ 2.20.1; x86_64-redhat-linux-gnu)
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1001913>
On Tue, 22 Jun 2010 20:52:50 +0530
Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org> wrote:
> Add conditional compile macros to guard the header file against multiple
> inclusion.
>
> Signed-off-by: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
> ---
> fs/cifs/cifsglob.h | 5 +++++
> 1 files changed, 5 insertions(+), 0 deletions(-)
>
> diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
> index a88479c..6b2c39d 100644
> --- a/fs/cifs/cifsglob.h
> +++ b/fs/cifs/cifsglob.h
> @@ -16,6 +16,9 @@
> * the GNU Lesser General Public License for more details.
> *
> */
> +#ifndef _CIFS_GLOB_H
> +#define _CIFS_GLOB_H
> +
> #include <linux/in.h>
> #include <linux/in6.h>
> #include <linux/slab.h>
> @@ -733,3 +736,5 @@ GLOBAL_EXTERN unsigned int cifs_min_small; /* min size of small buf pool */
> GLOBAL_EXTERN unsigned int cifs_max_pending; /* MAX requests at once to server*/
>
> extern const struct slow_work_ops cifs_oplock_break_ops;
> +
> +#endif /* _CIFS_GLOB_H */
Strong ACK
Acked-by: Jeff Layton <jlayton-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>

View file

@ -0,0 +1,254 @@
From: Jeff Layton <jlayton-vpEMnDpepFuMZCB2o+C8xQ@public.gmane.org>
Subject: Re: [RFC][PATCH 04/10] cifs: define server-level cache index
objects and register them with FS-Cache
Date: Tue, 22 Jun 2010 17:52:14 -0400
Lines: 204
Message-ID: <20100622175214.4c56234f@corrin.poochiereds.net>
References: <yes>
<1277220198-3522-1-git-send-email-sjayaraman@suse.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Cc: Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Tue Jun 22 23:50:23 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1ORBMJ-0005WJ-Lj
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Tue, 22 Jun 2010 23:50:20 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1750777Ab0FVVuS (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Tue, 22 Jun 2010 17:50:18 -0400
Received: from cdptpa-omtalb.mail.rr.com ([75.180.132.120]:55670 "EHLO
cdptpa-omtalb.mail.rr.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1750749Ab0FVVuR (ORCPT
<rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>); Tue, 22 Jun 2010 17:50:17 -0400
X-Authority-Analysis: v=1.1 cv=8MuG1bpxLlSbaYWWtODGdBCK7StbFcRsMXhWm1NVx/I= c=1 sm=0 a=wpY4Lvx3kJcA:10 a=UBIxAjGgU1YA:10 a=kj9zAlcOel0A:10 a=ld/erqUjW76FpBUqCqkKeA==:17 a=VwQbUJbxAAAA:8 a=qYub2k57AAAA:8 a=uYIlwBZcjrF9BUCsR4kA:9 a=OO1ZLbZb6q4TPdC5pcAA:7 a=jFshslHAf8hJVDYUYRlYN4n-w5YA:4 a=CjuIK1q_8ugA:10 a=x8gzFH9gYPwA:10 a=0kPLrQdw3YYA:10 a=jBoGP612-tUA:10 a=t5DF_bUGhurCx8LQ:21 a=W6P_Gh1y2IibdbqZ:21 a=ld/erqUjW76FpBUqCqkKeA==:117
X-Cloudmark-Score: 0
X-Originating-IP: 71.70.153.3
Received: from [71.70.153.3] ([71.70.153.3:59154] helo=mail.poochiereds.net)
by cdptpa-oedge03.mail.rr.com (envelope-from <jlayton-vpEMnDpepFuMZCB2o+C8xQ@public.gmane.org>)
(ecelerity 2.2.2.39 r()) with ESMTP
id AC/10-00502-710312C4; Tue, 22 Jun 2010 21:50:16 +0000
Received: from corrin.poochiereds.net (unknown [65.88.2.5])
by mail.poochiereds.net (Postfix) with ESMTPSA id 03B11580F4;
Tue, 22 Jun 2010 17:50:14 -0400 (EDT)
In-Reply-To: <1277220198-3522-1-git-send-email-sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-Mailer: Claws Mail 3.7.6 (GTK+ 2.20.1; x86_64-redhat-linux-gnu)
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1001918>
On Tue, 22 Jun 2010 20:53:18 +0530
Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org> wrote:
> Define server-level cache index objects (as managed by TCP_ServerInfo structs).
> Each server object is created in the CIFS top-level index object and is itself
> an index into which superblock-level objects are inserted.
>
> Currently, the server objects are keyed by hostname.
>
> Signed-off-by: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
> ---
> fs/cifs/Makefile | 2 +-
> fs/cifs/cache.c | 25 +++++++++++++++++++++++++
> fs/cifs/cifsglob.h | 3 +++
> fs/cifs/connect.c | 4 ++++
> fs/cifs/fscache.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++
> fs/cifs/fscache.h | 12 ++++++++++++
> 6 files changed, 92 insertions(+), 1 deletion(-)
> create mode 100644 fs/cifs/fscache.c
>
> Index: cifs-2.6/fs/cifs/Makefile
> ===================================================================
> --- cifs-2.6.orig/fs/cifs/Makefile
> +++ cifs-2.6/fs/cifs/Makefile
> @@ -12,4 +12,4 @@ cifs-$(CONFIG_CIFS_UPCALL) += cifs_spneg
>
> cifs-$(CONFIG_CIFS_DFS_UPCALL) += dns_resolve.o cifs_dfs_ref.o
>
> -cifs-$(CONFIG_CIFS_FSCACHE) += cache.o
> +cifs-$(CONFIG_CIFS_FSCACHE) += fscache.o cache.o
> Index: cifs-2.6/fs/cifs/cache.c
> ===================================================================
> --- cifs-2.6.orig/fs/cifs/cache.c
> +++ cifs-2.6/fs/cifs/cache.c
> @@ -51,3 +51,28 @@ void cifs_fscache_unregister(void)
> fscache_unregister_netfs(&cifs_fscache_netfs);
> }
>
> +/*
> + * Server object currently keyed by hostname
> + */
> +static uint16_t cifs_server_get_key(const void *cookie_netfs_data,
> + void *buffer, uint16_t maxbuf)
> +{
> + const struct TCP_Server_Info *server = cookie_netfs_data;
> + uint16_t len = strnlen(server->hostname, sizeof(server->hostname));
> +
Would a tuple of address/family/port be a better choice here? Imagine I
mount "foo" and then later mount "foor.bar.baz". If they are the same
address and only the UNC differs, then you won't get the benefit of
the cache, right?
> + if (len > maxbuf)
> + return 0;
> +
> + memcpy(buffer, server->hostname, len);
> +
> + return len;
> +}
> +
> +/*
> + * Server object for FS-Cache
> + */
> +const struct fscache_cookie_def cifs_fscache_server_index_def = {
> + .name = "CIFS.server",
> + .type = FSCACHE_COOKIE_TYPE_INDEX,
> + .get_key = cifs_server_get_key,
> +};
> Index: cifs-2.6/fs/cifs/cifsglob.h
> ===================================================================
> --- cifs-2.6.orig/fs/cifs/cifsglob.h
> +++ cifs-2.6/fs/cifs/cifsglob.h
> @@ -193,6 +193,9 @@ struct TCP_Server_Info {
> bool sec_mskerberos; /* supports legacy MS Kerberos */
> bool sec_kerberosu2u; /* supports U2U Kerberos */
> bool sec_ntlmssp; /* supports NTLMSSP */
> +#ifdef CONFIG_CIFS_FSCACHE
> + struct fscache_cookie *fscache; /* client index cache cookie */
> +#endif
> };
>
> /*
> Index: cifs-2.6/fs/cifs/connect.c
> ===================================================================
> --- cifs-2.6.orig/fs/cifs/connect.c
> +++ cifs-2.6/fs/cifs/connect.c
> @@ -48,6 +48,7 @@
> #include "nterr.h"
> #include "rfc1002pdu.h"
> #include "cn_cifs.h"
> +#include "fscache.h"
>
> #define CIFS_PORT 445
> #define RFC1001_PORT 139
> @@ -1453,6 +1454,8 @@ cifs_put_tcp_session(struct TCP_Server_I
> return;
> }
>
> + cifs_fscache_release_client_cookie(server);
> +
> list_del_init(&server->tcp_ses_list);
> write_unlock(&cifs_tcp_ses_lock);
>
> @@ -1572,6 +1575,7 @@ cifs_get_tcp_session(struct smb_vol *vol
> goto out_err;
> }
>
> + cifs_fscache_get_client_cookie(tcp_ses);
> /* thread spawned, put it on the list */
> write_lock(&cifs_tcp_ses_lock);
> list_add(&tcp_ses->tcp_ses_list, &cifs_tcp_ses_list);
> Index: cifs-2.6/fs/cifs/fscache.c
> ===================================================================
> --- /dev/null
> +++ cifs-2.6/fs/cifs/fscache.c
> @@ -0,0 +1,47 @@
> +/*
> + * fs/cifs/fscache.c - CIFS filesystem cache interface
> + *
> + * Copyright (c) 2010 Novell, Inc.
> + * Authors(s): Suresh Jayaraman (sjayaraman-l3A5Bk7waGM@public.gmane.org>
> + *
> + * This library is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU Lesser General Public License as published
> + * by the Free Software Foundation; either version 2.1 of the License, or
> + * (at your option) any later version.
> + *
> + * This library is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
> + * the GNU Lesser General Public License for more details.
> + *
> + * You should have received a copy of the GNU Lesser General Public License
> + * along with this library; if not, write to the Free Software
> + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
> + */
> +#include <linux/init.h>
> +#include <linux/kernel.h>
> +#include <linux/sched.h>
> +#include <linux/mm.h>
> +#include <linux/in6.h>
> +
> +#include "fscache.h"
> +#include "cifsglob.h"
> +#include "cifs_debug.h"
> +
> +void cifs_fscache_get_client_cookie(struct TCP_Server_Info *server)
> +{
> + server->fscache =
> + fscache_acquire_cookie(cifs_fscache_netfs.primary_index,
> + &cifs_fscache_server_index_def, server);
> + cFYI(1, "CIFS: get client cookie (0x%p/0x%p)\n",
> + server, server->fscache);
> +}
> +
> +void cifs_fscache_release_client_cookie(struct TCP_Server_Info *server)
> +{
> + cFYI(1, "CIFS: release client cookie (0x%p/0x%p)\n",
> + server, server->fscache);
> + fscache_relinquish_cookie(server->fscache, 0);
> + server->fscache = NULL;
> +}
> +
> Index: cifs-2.6/fs/cifs/fscache.h
> ===================================================================
> --- cifs-2.6.orig/fs/cifs/fscache.h
> +++ cifs-2.6/fs/cifs/fscache.h
> @@ -27,14 +27,26 @@
> #ifdef CONFIG_CIFS_FSCACHE
>
> extern struct fscache_netfs cifs_fscache_netfs;
> +extern const struct fscache_cookie_def cifs_fscache_server_index_def;
>
> extern int cifs_fscache_register(void);
> extern void cifs_fscache_unregister(void);
>
> +/*
> + * fscache.c
> + */
> +extern void cifs_fscache_get_client_cookie(struct TCP_Server_Info *);
> +extern void cifs_fscache_release_client_cookie(struct TCP_Server_Info *);
> +
> #else /* CONFIG_CIFS_FSCACHE */
> static inline int cifs_fscache_register(void) { return 0; }
> static inline void cifs_fscache_unregister(void) {}
>
> +static inline void
> +cifs_fscache_get_client_cookie(struct TCP_Server_Info *server) {}
> +static inline void
> +cifs_fscache_get_client_cookie(struct TCP_Server_Info *server); {}
> +
> #endif /* CONFIG_CIFS_FSCACHE */
>
> #endif /* _CIFS_FSCACHE_H */
> --
> To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
Jeff Layton <jlayton-vpEMnDpepFuMZCB2o+C8xQ@public.gmane.org>

View file

@ -0,0 +1,66 @@
From: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Subject: Re: [RFC][PATCH 03/10] cifs: register CIFS for caching
Date: Wed, 23 Jun 2010 17:51:17 +0100
Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley
Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United
Kingdom.
Registered in England and Wales under Company Registration No. 3798903
Lines: 20
Message-ID: <9603.1277311877@redhat.com>
References: <1277220189-3485-1-git-send-email-sjayaraman@suse.de> <yes>
Cc: dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
To: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Wed Jun 23 18:51:32 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1ORTAg-0008Bt-CT
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Wed, 23 Jun 2010 18:51:30 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1751915Ab0FWQv3 (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Wed, 23 Jun 2010 12:51:29 -0400
Received: from mx1.redhat.com ([209.132.183.28]:50923 "EHLO mx1.redhat.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1751520Ab0FWQv3 (ORCPT <rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>);
Wed, 23 Jun 2010 12:51:29 -0400
Received: from int-mx05.intmail.prod.int.phx2.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.18])
by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o5NGpLFc028550
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
Wed, 23 Jun 2010 12:51:21 -0400
Received: from redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1])
by int-mx05.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o5NGpHIG010890;
Wed, 23 Jun 2010 12:51:18 -0400
In-Reply-To: <1277220189-3485-1-git-send-email-sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.18
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1002219>
Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org> wrote:
> + rc = cifs_fscache_register();
> + if (rc)
> + goto out;
> +
> rc = cifs_init_inodecache();
> if (rc)
> goto out_clean_proc;
> @@ -949,8 +954,10 @@ init_cifs(void)
> cifs_destroy_mids();
> out_destroy_inodecache:
> cifs_destroy_inodecache();
> + cifs_fscache_unregister();
> out_clean_proc:
This is incorrect. You need to call cifs_fscache_unregister() if
cifs_init_inodecache() fails.
David

View file

@ -0,0 +1,65 @@
From: David Howells <dhowells@redhat.com>
Subject: Re: [RFC][PATCH 04/10] cifs: define server-level cache index objects and register them with FS-Cache
Date: Wed, 23 Jun 2010 17:54:52 +0100
Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley
Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United
Kingdom.
Registered in England and Wales under Company Registration No. 3798903
Lines: 19
Message-ID: <9658.1277312092@redhat.com>
References: <1277220198-3522-1-git-send-email-sjayaraman@suse.de> <yes>
Cc: dhowells@redhat.com, Steve French <smfrench@gmail.com>,
linux-cifs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org
To: Suresh Jayaraman <sjayaraman@suse.de>
X-From: linux-fsdevel-owner@vger.kernel.org Wed Jun 23 18:55:07 2010
Return-path: <linux-fsdevel-owner@vger.kernel.org>
Envelope-to: lnx-linux-fsdevel@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-fsdevel-owner@vger.kernel.org>)
id 1ORTE8-0002ll-VF
for lnx-linux-fsdevel@lo.gmane.org; Wed, 23 Jun 2010 18:55:05 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1752263Ab0FWQzD (ORCPT <rfc822;lnx-linux-fsdevel@m.gmane.org>);
Wed, 23 Jun 2010 12:55:03 -0400
Received: from mx1.redhat.com ([209.132.183.28]:18394 "EHLO mx1.redhat.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1751794Ab0FWQzB (ORCPT <rfc822;linux-fsdevel@vger.kernel.org>);
Wed, 23 Jun 2010 12:55:01 -0400
Received: from int-mx04.intmail.prod.int.phx2.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.17])
by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o5NGsu1L000993
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
Wed, 23 Jun 2010 12:54:56 -0400
Received: from redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1])
by int-mx04.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o5NGsrUG016433;
Wed, 23 Jun 2010 12:54:54 -0400
In-Reply-To: <1277220198-3522-1-git-send-email-sjayaraman@suse.de>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.17
Sender: linux-fsdevel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-fsdevel.vger.kernel.org>
X-Mailing-List: linux-fsdevel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1002221>
Suresh Jayaraman <sjayaraman@suse.de> wrote:
> Define server-level cache index objects (as managed by TCP_ServerInfo
> structs). Each server object is created in the CIFS top-level index object
> and is itself an index into which superblock-level objects are inserted.
>
> Currently, the server objects are keyed by hostname.
>
> Signed-off-by: Suresh Jayaraman <sjayaraman@suse.de>
Looks reasonable, apart from the index key. I agree with Jeff that you
probably want {address,port,family} rather than a hostname.
David
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

View file

@ -0,0 +1,59 @@
From: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Subject: Re: [RFC][PATCH 05/10] cifs: define superblock-level cache index objects and register them
Date: Wed, 23 Jun 2010 17:58:10 +0100
Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley
Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United
Kingdom.
Registered in England and Wales under Company Registration No. 3798903
Lines: 13
Message-ID: <9720.1277312290@redhat.com>
References: <1277220206-3559-1-git-send-email-sjayaraman@suse.de> <yes>
Cc: dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
To: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Wed Jun 23 18:58:19 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1ORTHG-0003Az-Ge
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Wed, 23 Jun 2010 18:58:18 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1751520Ab0FWQ6R (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Wed, 23 Jun 2010 12:58:17 -0400
Received: from mx1.redhat.com ([209.132.183.28]:62343 "EHLO mx1.redhat.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1751372Ab0FWQ6R (ORCPT <rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>);
Wed, 23 Jun 2010 12:58:17 -0400
Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11])
by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o5NGwDC2031683
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
Wed, 23 Jun 2010 12:58:13 -0400
Received: from redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1])
by int-mx01.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o5NGwAfq021298;
Wed, 23 Jun 2010 12:58:11 -0400
In-Reply-To: <1277220206-3559-1-git-send-email-sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.11
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1002223>
Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org> wrote:
> Define superblock-level cache index objects (managed by cifsTconInfo
> structs). Each superblock object is created in a server-level index object
> and in itself an index into which inode-level objects are inserted.
>
> Currently, the superblock objects are keyed by sharename.
Seems reasonable. Is there any way you can check that the share you are
looking at on a server is the same as the last time you looked? Can you
validate the root directory of the share in some way?
David

View file

@ -0,0 +1,61 @@
From: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Subject: Re: [RFC][PATCH 06/10] cifs: define inode-level cache object and register them
Date: Wed, 23 Jun 2010 18:02:53 +0100
Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley
Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United
Kingdom.
Registered in England and Wales under Company Registration No. 3798903
Lines: 15
Message-ID: <9822.1277312573@redhat.com>
References: <1277220214-3597-1-git-send-email-sjayaraman@suse.de> <yes>
Cc: dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
To: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Wed Jun 23 19:03:04 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1ORTLr-0007Bh-Cs
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Wed, 23 Jun 2010 19:03:03 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1752063Ab0FWRDB (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Wed, 23 Jun 2010 13:03:01 -0400
Received: from mx1.redhat.com ([209.132.183.28]:30823 "EHLO mx1.redhat.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1751804Ab0FWRDA (ORCPT <rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>);
Wed, 23 Jun 2010 13:03:00 -0400
Received: from int-mx03.intmail.prod.int.phx2.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.16])
by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o5NH2v0J030982
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
Wed, 23 Jun 2010 13:02:57 -0400
Received: from redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1])
by int-mx03.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o5NH2r9N014323;
Wed, 23 Jun 2010 13:02:54 -0400
In-Reply-To: <1277220214-3597-1-git-send-email-sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.16
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1002224>
Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org> wrote:
> Define inode-level data storage objects (managed by cifsInodeInfo structs).
> Each inode-level object is created in a super-block level object and is
> itself a data storage object in to which pages from the inode are stored.
>
> The inode object is keyed by UniqueId. The coherency data being used is
> LastWriteTime and the file size.
Isn't there a file creation time too?
I take it you don't support caching on files that are open for writing at this
time?
David

View file

@ -0,0 +1,59 @@
From: David Howells <dhowells@redhat.com>
Subject: Re: [RFC][PATCH 07/10] cifs: FS-Cache page management
Date: Wed, 23 Jun 2010 18:05:01 +0100
Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley
Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United
Kingdom.
Registered in England and Wales under Company Registration No. 3798903
Lines: 13
Message-ID: <9866.1277312701@redhat.com>
References: <1277220228-3635-1-git-send-email-sjayaraman@suse.de> <yes>
Cc: dhowells@redhat.com, Steve French <smfrench@gmail.com>,
linux-cifs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org
To: Suresh Jayaraman <sjayaraman@suse.de>
X-From: linux-fsdevel-owner@vger.kernel.org Wed Jun 23 19:05:19 2010
Return-path: <linux-fsdevel-owner@vger.kernel.org>
Envelope-to: lnx-linux-fsdevel@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-fsdevel-owner@vger.kernel.org>)
id 1ORTNz-0008Oj-Ho
for lnx-linux-fsdevel@lo.gmane.org; Wed, 23 Jun 2010 19:05:15 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1752145Ab0FWRFO (ORCPT <rfc822;lnx-linux-fsdevel@m.gmane.org>);
Wed, 23 Jun 2010 13:05:14 -0400
Received: from mx1.redhat.com ([209.132.183.28]:1689 "EHLO mx1.redhat.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1751804Ab0FWRFN (ORCPT <rfc822;linux-fsdevel@vger.kernel.org>);
Wed, 23 Jun 2010 13:05:13 -0400
Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12])
by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o5NH59sl011966
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
Wed, 23 Jun 2010 13:05:09 -0400
Received: from redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1])
by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o5NH52Jl022163;
Wed, 23 Jun 2010 13:05:03 -0400
In-Reply-To: <1277220228-3635-1-git-send-email-sjayaraman@suse.de>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.12
Sender: linux-fsdevel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-fsdevel.vger.kernel.org>
X-Mailing-List: linux-fsdevel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1002225>
Suresh Jayaraman <sjayaraman@suse.de> wrote:
> Takes care of invalidation and release of FS-Cache marked pages and also
> invalidation of the FsCache page flag when the inode is removed.
>
> Signed-off-by: Suresh Jayaraman <sjayaraman@suse.de>
Acked-by: David Howells <dhowells@redhat.com>
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

View file

@ -0,0 +1,54 @@
From: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Subject: Re: [RFC][PATCH 08/10] cifs: store pages into local cache
Date: Wed, 23 Jun 2010 18:06:12 +0100
Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley
Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United
Kingdom.
Registered in England and Wales under Company Registration No. 3798903
Lines: 8
Message-ID: <9890.1277312772@redhat.com>
References: <1277220240-3674-1-git-send-email-sjayaraman@suse.de> <yes>
Cc: dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
To: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Wed Jun 23 19:06:21 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1ORTP3-0000fp-01
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Wed, 23 Jun 2010 19:06:21 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1752403Ab0FWRGU (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Wed, 23 Jun 2010 13:06:20 -0400
Received: from mx1.redhat.com ([209.132.183.28]:63621 "EHLO mx1.redhat.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1751804Ab0FWRGT (ORCPT <rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>);
Wed, 23 Jun 2010 13:06:19 -0400
Received: from int-mx08.intmail.prod.int.phx2.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.21])
by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o5NH6FCB012081
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
Wed, 23 Jun 2010 13:06:15 -0400
Received: from redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1])
by int-mx08.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o5NH6CKG013414;
Wed, 23 Jun 2010 13:06:13 -0400
In-Reply-To: <1277220240-3674-1-git-send-email-sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.21
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1002226>
Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org> wrote:
> Store pages from an CIFS inode into the data storage object associated with
> that inode.
>
> Signed-off-by: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
Acked-by: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>

View file

@ -0,0 +1,53 @@
From: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Subject: Re: [RFC][PATCH 09/10] cifs: read pages from FS-Cache
Date: Wed, 23 Jun 2010 18:07:40 +0100
Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley
Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United
Kingdom.
Registered in England and Wales under Company Registration No. 3798903
Lines: 7
Message-ID: <9918.1277312860@redhat.com>
References: <1277220261-3717-1-git-send-email-sjayaraman@suse.de> <yes>
Cc: dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
To: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Wed Jun 23 19:07:51 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1ORTQR-0000nv-JF
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Wed, 23 Jun 2010 19:07:47 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1751708Ab0FWRHr (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Wed, 23 Jun 2010 13:07:47 -0400
Received: from mx1.redhat.com ([209.132.183.28]:34413 "EHLO mx1.redhat.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1750954Ab0FWRHq (ORCPT <rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>);
Wed, 23 Jun 2010 13:07:46 -0400
Received: from int-mx04.intmail.prod.int.phx2.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.17])
by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o5NH7h3Y005904
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
Wed, 23 Jun 2010 13:07:43 -0400
Received: from redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1])
by int-mx04.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o5NH7efR020683;
Wed, 23 Jun 2010 13:07:41 -0400
In-Reply-To: <1277220261-3717-1-git-send-email-sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.17
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1002227>
Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org> wrote:
> Read pages from a FS-Cache data storage object into a CIFS inode.
>
> Signed-off-by: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
Acked-by: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>

View file

@ -0,0 +1,58 @@
From: David Howells <dhowells@redhat.com>
Subject: Re: [RFC][PATCH 10/10] cifs: add mount option to enable local caching
Date: Wed, 23 Jun 2010 18:08:34 +0100
Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley
Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United
Kingdom.
Registered in England and Wales under Company Registration No. 3798903
Lines: 12
Message-ID: <9942.1277312914@redhat.com>
References: <1277220309-3757-1-git-send-email-sjayaraman@suse.de> <yes>
Cc: dhowells@redhat.com, Steve French <smfrench@gmail.com>,
linux-cifs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org
To: Suresh Jayaraman <sjayaraman@suse.de>
X-From: linux-kernel-owner@vger.kernel.org Wed Jun 23 19:09:22 2010
Return-path: <linux-kernel-owner@vger.kernel.org>
Envelope-to: glk-linux-kernel-3@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-kernel-owner@vger.kernel.org>)
id 1ORTRv-0002J8-2s
for glk-linux-kernel-3@lo.gmane.org; Wed, 23 Jun 2010 19:09:19 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1753275Ab0FWRIt (ORCPT <rfc822;glk-linux-kernel-3@m.gmane.org>);
Wed, 23 Jun 2010 13:08:49 -0400
Received: from mx1.redhat.com ([209.132.183.28]:6156 "EHLO mx1.redhat.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1753203Ab0FWRIr (ORCPT <rfc822;linux-kernel@vger.kernel.org>);
Wed, 23 Jun 2010 13:08:47 -0400
Received: from int-mx04.intmail.prod.int.phx2.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.17])
by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o5NH8dax006028
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
Wed, 23 Jun 2010 13:08:39 -0400
Received: from redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1])
by int-mx04.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o5NH8YmA020846;
Wed, 23 Jun 2010 13:08:36 -0400
In-Reply-To: <1277220309-3757-1-git-send-email-sjayaraman@suse.de>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.17
Sender: linux-kernel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-kernel.vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1002231>
Suresh Jayaraman <sjayaraman@suse.de> wrote:
> Add a mount option 'fsc' to enable local caching on CIFS.
>
> As the cifs-utils (userspace) changes are not done yet, this patch enables
> 'fsc' by default to assist testing.
>
> Signed-off-by: Suresh Jayaraman <sjayaraman@suse.de>
Acked-by: David Howells <dhowells@redhat.com>
(Give or take the debugging bit)

View file

@ -0,0 +1,90 @@
From: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
Subject: Re: [RFC][PATCH 10/10] cifs: add mount option to enable local caching
Date: Fri, 25 Jun 2010 16:18:12 +0530
Lines: 47
Message-ID: <4C24896C.4000903@suse.de>
References: <yes> <1277220309-3757-1-git-send-email-sjayaraman@suse.de> <4C225338.9010807@gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Cc: Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Scott Lovenberg <scott.lovenberg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Fri Jun 25 12:48:27 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1OS6SO-0003QF-NW
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Fri, 25 Jun 2010 12:48:25 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1753965Ab0FYKsX (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Fri, 25 Jun 2010 06:48:23 -0400
Received: from cantor.suse.de ([195.135.220.2]:46395 "EHLO mx1.suse.de"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1752612Ab0FYKsW (ORCPT <rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>);
Fri, 25 Jun 2010 06:48:22 -0400
Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.221.2])
(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
(No client certificate requested)
by mx1.suse.de (Postfix) with ESMTP id 60CED6CB00;
Fri, 25 Jun 2010 12:48:21 +0200 (CEST)
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.5) Gecko/20091130 SUSE/3.0.0-1.1.1 Thunderbird/3.0
In-Reply-To: <4C225338.9010807-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1002912>
On 06/24/2010 12:02 AM, Scott Lovenberg wrote:
> On 6/22/2010 11:25 AM, Suresh Jayaraman wrote:
>> Add a mount option 'fsc' to enable local caching on CIFS.
>>
>> As the cifs-utils (userspace) changes are not done yet, this patch
>> enables
>> 'fsc' by default to assist testing.
>>
> [...]
>> @@ -1332,6 +1336,8 @@ cifs_parse_mount_options(char *options, const
>> char *devname,
>> printk(KERN_WARNING "CIFS: Mount option noac not "
>> "supported. Instead set "
>> "/proc/fs/cifs/LookupCacheEnabled to 0\n");
>> + } else if (strnicmp(data, "fsc", 3) == 0) {
>> + vol->fsc = true;
>> } else
>> printk(KERN_WARNING "CIFS: Unknown mount option %s\n",
>> data);
>> @@ -2405,6 +2411,8 @@ static void setup_cifs_sb(struct smb_vol
>> *pvolume_info,
>> cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_OVERR_GID;
>> if (pvolume_info->dynperm)
>> cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_DYNPERM;
>> + if (pvolume_info->fsc)
>> + cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_FSCACHE;
>> if (pvolume_info->direct_io) {
>> cFYI(1, "mounting share using direct i/o");
>> cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_DIRECT_IO;
>>
> I reworked the CIFS mount option parsing a while back; I'm not sure
> whether that patch was going to be in the 2.6.35 tree or not (the window
> just opened, didn't it?).
Not a problem, I could redo this patch alone when the reworked option
parsing patches get in.
> Jeff, Steve, can you confirm if that patch is going to be in 2.6.35?
>
> Patch refs: http://patchwork.ozlabs.org/patch/53059/ and
> http://patchwork.ozlabs.org/patch/53674/
>
Thanks,
--
Suresh Jayaraman

View file

@ -0,0 +1,68 @@
From: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
Subject: Re: [RFC][PATCH 03/10] cifs: register CIFS for caching
Date: Fri, 25 Jun 2010 16:26:22 +0530
Lines: 26
Message-ID: <4C248B56.8030207@suse.de>
References: <1277220189-3485-1-git-send-email-sjayaraman@suse.de> <yes> <9603.1277311877@redhat.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Cc: Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
To: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Fri Jun 25 12:56:32 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1OS6aG-00066f-1L
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Fri, 25 Jun 2010 12:56:32 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1754188Ab0FYK4b (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Fri, 25 Jun 2010 06:56:31 -0400
Received: from cantor.suse.de ([195.135.220.2]:46564 "EHLO mx1.suse.de"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1753651Ab0FYK4a (ORCPT <rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>);
Fri, 25 Jun 2010 06:56:30 -0400
Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.221.2])
(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
(No client certificate requested)
by mx1.suse.de (Postfix) with ESMTP id 17F1E6CB00;
Fri, 25 Jun 2010 12:56:30 +0200 (CEST)
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.5) Gecko/20091130 SUSE/3.0.0-1.1.1 Thunderbird/3.0
In-Reply-To: <9603.1277311877-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1002913>
On 06/23/2010 10:21 PM, David Howells wrote:
> Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org> wrote:
>
>> + rc = cifs_fscache_register();
>> + if (rc)
>> + goto out;
>> +
>> rc = cifs_init_inodecache();
>> if (rc)
>> goto out_clean_proc;
>> @@ -949,8 +954,10 @@ init_cifs(void)
>> cifs_destroy_mids();
>> out_destroy_inodecache:
>> cifs_destroy_inodecache();
>> + cifs_fscache_unregister();
>> out_clean_proc:
>
> This is incorrect. You need to call cifs_fscache_unregister() if
> cifs_init_inodecache() fails.
>
Doh! I'll fix it.
--
Suresh Jayaraman

View file

@ -0,0 +1,84 @@
From: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
Subject: Re: [RFC][PATCH 05/10] cifs: define superblock-level cache index
objects and register them
Date: Fri, 25 Jun 2010 18:14:16 +0530
Lines: 41
Message-ID: <4C24A4A0.90408@suse.de>
References: <1277220206-3559-1-git-send-email-sjayaraman@suse.de> <yes> <9720.1277312290@redhat.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Cc: Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
To: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Fri Jun 25 14:44:28 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1OS8Gh-0005Bb-E2
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Fri, 25 Jun 2010 14:44:27 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1754703Ab0FYMo0 (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Fri, 25 Jun 2010 08:44:26 -0400
Received: from cantor.suse.de ([195.135.220.2]:51036 "EHLO mx1.suse.de"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1754222Ab0FYMoZ (ORCPT <rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>);
Fri, 25 Jun 2010 08:44:25 -0400
Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.221.2])
(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
(No client certificate requested)
by mx1.suse.de (Postfix) with ESMTP id E07FF8FEA2;
Fri, 25 Jun 2010 14:44:24 +0200 (CEST)
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.5) Gecko/20091130 SUSE/3.0.0-1.1.1 Thunderbird/3.0
In-Reply-To: <9720.1277312290-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1002945>
On 06/23/2010 10:28 PM, David Howells wrote:
> Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org> wrote:
>
>> Define superblock-level cache index objects (managed by cifsTconInfo
>> structs). Each superblock object is created in a server-level index object
>> and in itself an index into which inode-level objects are inserted.
>>
>> Currently, the superblock objects are keyed by sharename.
>
> Seems reasonable. Is there any way you can check that the share you are
> looking at on a server is the same as the last time you looked? Can you
Good point.
I thought of using TID (Tree identifier; a unique ID for a resource in
use by client) along with sharename. But, Server is free to reuse them
when the tree connection closes and does not guarantee the same Tid for
a particular resource across tree connections.
Also, considering the UNC name of the resource (//server/share) may not
be a good idea too as the cache will not be used when for e.g. IPaddress
is used to mount.
So, if a server does something like this:
- export a share 'foo' (original server path: /export/vol1/foo)
- client mounts and uses it
- server unexports the share 'foo'
- server exports 'foo' (original sever path: /export/vol2/foo)
we have a bit of problem..
> validate the root directory of the share in some way?
>
I don't know if there is a way to do this.
Thanks,
--
Suresh Jayaraman

View file

@ -0,0 +1,65 @@
From: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
Subject: Re: [RFC][PATCH 06/10] cifs: define inode-level cache object and
register them
Date: Fri, 25 Jun 2010 18:20:14 +0530
Lines: 24
Message-ID: <4C24A606.5040001@suse.de>
References: <1277220214-3597-1-git-send-email-sjayaraman@suse.de> <yes> <9822.1277312573@redhat.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Cc: Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
To: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Fri Jun 25 14:50:26 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1OS8MR-0007EU-OS
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Fri, 25 Jun 2010 14:50:24 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1754607Ab0FYMuX (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Fri, 25 Jun 2010 08:50:23 -0400
Received: from cantor2.suse.de ([195.135.220.15]:38716 "EHLO mx2.suse.de"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1753675Ab0FYMuW (ORCPT <rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>);
Fri, 25 Jun 2010 08:50:22 -0400
Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.221.2])
by mx2.suse.de (Postfix) with ESMTP id B05E686A2E;
Fri, 25 Jun 2010 14:50:21 +0200 (CEST)
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.5) Gecko/20091130 SUSE/3.0.0-1.1.1 Thunderbird/3.0
In-Reply-To: <9822.1277312573-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1002946>
On 06/23/2010 10:32 PM, David Howells wrote:
> Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org> wrote:
>
>> Define inode-level data storage objects (managed by cifsInodeInfo structs).
>> Each inode-level object is created in a super-block level object and is
>> itself a data storage object in to which pages from the inode are stored.
>>
>> The inode object is keyed by UniqueId. The coherency data being used is
>> LastWriteTime and the file size.
>
> Isn't there a file creation time too?
I think the creation time is currently being ignored as we won't be able
to accomodate in POSIX stat struct.
> I take it you don't support caching on files that are open for writing at this
> time?
>
Yes.
--
Suresh Jayaraman

View file

@ -0,0 +1,58 @@
From: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Subject: Re: [RFC][PATCH 06/10] cifs: define inode-level cache object and register them
Date: Fri, 25 Jun 2010 13:55:49 +0100
Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley
Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United
Kingdom.
Registered in England and Wales under Company Registration No. 3798903
Lines: 12
Message-ID: <22697.1277470549@redhat.com>
References: <4C24A606.5040001@suse.de> <1277220214-3597-1-git-send-email-sjayaraman@suse.de> <yes> <9822.1277312573@redhat.com>
Cc: dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
To: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Fri Jun 25 14:56:04 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1OS8Rw-0002tq-3k
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Fri, 25 Jun 2010 14:56:04 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1753622Ab0FYM4B (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Fri, 25 Jun 2010 08:56:01 -0400
Received: from mx1.redhat.com ([209.132.183.28]:50162 "EHLO mx1.redhat.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1752535Ab0FYM4B (ORCPT <rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>);
Fri, 25 Jun 2010 08:56:01 -0400
Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11])
by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o5PCtqOd018091
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
Fri, 25 Jun 2010 08:55:52 -0400
Received: from redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1])
by int-mx01.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o5PCtn4G016466;
Fri, 25 Jun 2010 08:55:51 -0400
In-Reply-To: <4C24A606.5040001-l3A5Bk7waGM@public.gmane.org>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.11
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1002949>
Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org> wrote:
> I think the creation time is currently being ignored as we won't be able
> to accomodate in POSIX stat struct.
The FS-Cache interface doesn't use the POSIX stat struct, but it could be
really useful to save it and use it for cache coherency inside the kernel.
Out of interest, what does Samba do when it comes to generating a creation time
for UNIX where one does not exist?
David

View file

@ -0,0 +1,67 @@
From: David Howells <dhowells@redhat.com>
Subject: Re: [RFC][PATCH 05/10] cifs: define superblock-level cache index objects and register them
Date: Fri, 25 Jun 2010 13:58:33 +0100
Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley
Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United
Kingdom.
Registered in England and Wales under Company Registration No. 3798903
Lines: 21
Message-ID: <22746.1277470713@redhat.com>
References: <4C24A4A0.90408@suse.de> <1277220206-3559-1-git-send-email-sjayaraman@suse.de> <yes> <9720.1277312290@redhat.com>
Cc: dhowells@redhat.com, Steve French <smfrench@gmail.com>,
linux-cifs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org
To: Suresh Jayaraman <sjayaraman@suse.de>
X-From: linux-fsdevel-owner@vger.kernel.org Fri Jun 25 15:02:20 2010
Return-path: <linux-fsdevel-owner@vger.kernel.org>
Envelope-to: lnx-linux-fsdevel@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with smtp (Exim 4.69)
(envelope-from <linux-fsdevel-owner@vger.kernel.org>)
id 1OS8Xz-000628-FG
for lnx-linux-fsdevel@lo.gmane.org; Fri, 25 Jun 2010 15:02:19 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1755357Ab0FYM6k (ORCPT <rfc822;lnx-linux-fsdevel@m.gmane.org>);
Fri, 25 Jun 2010 08:58:40 -0400
Received: from mx1.redhat.com ([209.132.183.28]:50417 "EHLO mx1.redhat.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1754086Ab0FYM6j (ORCPT <rfc822;linux-fsdevel@vger.kernel.org>);
Fri, 25 Jun 2010 08:58:39 -0400
Received: from int-mx04.intmail.prod.int.phx2.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.17])
by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o5PCwa7Z005113
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
Fri, 25 Jun 2010 08:58:36 -0400
Received: from redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1])
by int-mx04.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o5PCwXVB011094;
Fri, 25 Jun 2010 08:58:34 -0400
In-Reply-To: <4C24A4A0.90408@suse.de>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.17
Sender: linux-fsdevel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-fsdevel.vger.kernel.org>
X-Mailing-List: linux-fsdevel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1002951>
Suresh Jayaraman <sjayaraman@suse.de> wrote:
> Also, considering the UNC name of the resource (//server/share) may not
> be a good idea too as the cache will not be used when for e.g. IPaddress
> is used to mount.
You could convert the UNC name to an IP address, and just use that as your
key.
> > validate the root directory of the share in some way?
>
> I don't know if there is a way to do this.
Is there an inode number or something? Even the creation time might do.
David
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

View file

@ -0,0 +1,81 @@
From: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Subject: Re: [RFC][PATCH 05/10] cifs: define superblock-level cache index objects and register them
Date: Fri, 25 Jun 2010 14:26:52 +0100
Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley
Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United
Kingdom.
Registered in England and Wales under Company Registration No. 3798903
Lines: 35
Message-ID: <23204.1277472412@redhat.com>
References: <22746.1277470713@redhat.com> <4C24A4A0.90408@suse.de> <1277220206-3559-1-git-send-email-sjayaraman@suse.de> <yes> <9720.1277312290@redhat.com>
Cc: dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>,
Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
To: unlisted-recipients:; (no To-header on input)
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Fri Jun 25 15:27:01 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1OS8vt-0000Xv-FL
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Fri, 25 Jun 2010 15:27:01 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1755944Ab0FYN1A (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Fri, 25 Jun 2010 09:27:00 -0400
Received: from mx1.redhat.com ([209.132.183.28]:15634 "EHLO mx1.redhat.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1755398Ab0FYN07 (ORCPT <rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>);
Fri, 25 Jun 2010 09:26:59 -0400
Received: from int-mx04.intmail.prod.int.phx2.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.17])
by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o5PDQu1D020638
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
Fri, 25 Jun 2010 09:26:56 -0400
Received: from redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1])
by int-mx04.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o5PDQruU018472;
Fri, 25 Jun 2010 09:26:54 -0400
In-Reply-To: <22746.1277470713-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.17
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1002964>
David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> wrote:
> > > validate the root directory of the share in some way?
> >
> > I don't know if there is a way to do this.
>
> Is there an inode number or something? Even the creation time might do.
Looking in cifspdu.h, there are a number of things that it might be possible
to use.
(1) FILE_ALL_INFO: CreationTime, IndexNumber, IndexNumber1, FileName
(assuming this isn't flattened to '\' or something for the root of a
share.
(2) FILE_UNIX_BASIC_INFO: DevMajor, DevMinor, UniqueId.
(3) FILE_INFO_STANDARD: CreationDate, CreationTime.
(4) FILE_INFO_BASIC: CreationTime.
(5) FILE_DIRECTORY_INFO: FileIndex, CreationTime, FileName.
(6) SEARCH_ID_FULL_DIR_INFO: FileIndex, CreationTime, UniqueId, FileName.
(7) FILE_BOTH_DIRECTORY_INFO: FileIndex, CreationTime, ShortName, FileName.
(8) OPEN_RSP_EXT: Fid, CreationTime, VolumeGUID, FileId.
You may have to choose different sets of things, depending on what the server
has on offer. Also, don't forget, if you can't work out whether a share is
coherent or not from the above, you can always use LastWriteTime, ChangeTime
and EndOfFile and just discard the whole subtree if they differ.
David

View file

@ -0,0 +1,90 @@
From: Jeff Layton <jlayton-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>
Subject: Re: [RFC][PATCH 06/10] cifs: define inode-level cache object and
register them
Date: Fri, 25 Jun 2010 12:53:06 -0400
Lines: 36
Message-ID: <20100625125306.7f9b1966@tlielax.poochiereds.net>
References: <4C24A606.5040001@suse.de>
<1277220214-3597-1-git-send-email-sjayaraman@suse.de>
<yes>
<9822.1277312573@redhat.com>
<22697.1277470549@redhat.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Cc: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>,
Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
samba-technical-w/Ol4Ecudpl8XjKLYN78aQ@public.gmane.org
To: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Fri Jun 25 18:53:12 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1OSC9P-0005Eb-SU
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Fri, 25 Jun 2010 18:53:12 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S932199Ab0FYQxK (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Fri, 25 Jun 2010 12:53:10 -0400
Received: from cdptpa-omtalb.mail.rr.com ([75.180.132.122]:53512 "EHLO
cdptpa-omtalb.mail.rr.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S932187Ab0FYQxJ (ORCPT
<rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>); Fri, 25 Jun 2010 12:53:09 -0400
X-Authority-Analysis: v=1.0 c=1 a=iVNVO0OCT3kA:10 a=yQWWgrYGNuUA:10 a=kj9zAlcOel0A:10 a=20KFwNOVAAAA:8 a=hGzw-44bAAAA:8 a=f0L6POiToRdS6aViIA4A:9 a=tdNtT7bw1iHNm6ggrCkIte35EhAA:4 a=CjuIK1q_8ugA:10 a=jEp0ucaQiEUA:10 a=0kPLrQdw3YYA:10 a=dowx1zmaLagA:10 a=00U40p1LBqVLw4jT:21 a=gh7LVOPznGai4vo_:21
X-Cloudmark-Score: 0
X-Originating-IP: 71.70.153.3
Received: from [71.70.153.3] ([71.70.153.3:42266] helo=mail.poochiereds.net)
by cdptpa-oedge01.mail.rr.com (envelope-from <jlayton-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>)
(ecelerity 2.2.2.39 r()) with ESMTP
id 2D/E0-24471-3FED42C4; Fri, 25 Jun 2010 16:53:08 +0000
Received: from tlielax.poochiereds.net (tlielax.poochiereds.net [192.168.1.3])
by mail.poochiereds.net (Postfix) with ESMTPS id E9B19580FA;
Fri, 25 Jun 2010 12:53:06 -0400 (EDT)
In-Reply-To: <22697.1277470549-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
X-Mailer: Claws Mail 3.7.6 (GTK+ 2.20.1; x86_64-redhat-linux-gnu)
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1003033>
On Fri, 25 Jun 2010 13:55:49 +0100
David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> wrote:
> Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org> wrote:
>
> > I think the creation time is currently being ignored as we won't be able
> > to accomodate in POSIX stat struct.
>
> The FS-Cache interface doesn't use the POSIX stat struct, but it could be
> really useful to save it and use it for cache coherency inside the kernel.
>
> Out of interest, what does Samba do when it comes to generating a creation time
> for UNIX where one does not exist?
>
(cc'ing samba-technical since we're talking about the create time)
Looks like it mostly uses the ctime. IMO, the mtime would be a better
choice since it changes less frequently, but I don't guess that it
matters very much.
I have a few patches that make the cifs_iget code do more stringent
checks. One of those makes it use the create time like an i_generation
field to guard against matching inodes that have the same number but
that have undergone a delete/create cycle. They need a bit more testing
but I'm planning to post them in time for 2.6.36.
Because of how samba generates this number, it could be somewhat
problematic to do this. What may save us though is that Linux<->Samba
mostly uses unix extensions unless someone has specifically disabled
them on either end. The unix extension calls don't generally send any
sort of create time field, so we can't rely on it in those codepaths
anyway.
--
Jeff Layton <jlayton-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>

View file

@ -0,0 +1,60 @@
From: David Howells <dhowells@redhat.com>
Subject: Re: [RFC][PATCH 06/10] cifs: define inode-level cache object and register them
Date: Fri, 25 Jun 2010 22:46:38 +0100
Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley
Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United
Kingdom.
Registered in England and Wales under Company Registration No. 3798903
Lines: 13
Message-ID: <18628.1277502398@redhat.com>
References: <20100625125306.7f9b1966@tlielax.poochiereds.net> <4C24A606.5040001@suse.de> <1277220214-3597-1-git-send-email-sjayaraman@suse.de> <yes> <9822.1277312573@redhat.com> <22697.1277470549@redhat.com>
Cc: dhowells@redhat.com, Suresh Jayaraman <sjayaraman@suse.de>,
Steve French <smfrench@gmail.com>, linux-cifs@vger.kernel.org,
linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
samba-technical@lists.samba.org
To: Jeff Layton <jlayton@samba.org>
X-From: linux-kernel-owner@vger.kernel.org Fri Jun 25 23:47:07 2010
Return-path: <linux-kernel-owner@vger.kernel.org>
Envelope-to: glk-linux-kernel-3@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-kernel-owner@vger.kernel.org>)
id 1OSGjo-0006q8-ME
for glk-linux-kernel-3@lo.gmane.org; Fri, 25 Jun 2010 23:47:05 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S932250Ab0FYVqv (ORCPT <rfc822;glk-linux-kernel-3@m.gmane.org>);
Fri, 25 Jun 2010 17:46:51 -0400
Received: from mx1.redhat.com ([209.132.183.28]:55406 "EHLO mx1.redhat.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S932088Ab0FYVqs (ORCPT <rfc822;linux-kernel@vger.kernel.org>);
Fri, 25 Jun 2010 17:46:48 -0400
Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12])
by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o5PLkhIG005974
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
Fri, 25 Jun 2010 17:46:43 -0400
Received: from redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1])
by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o5PLkd77017768;
Fri, 25 Jun 2010 17:46:40 -0400
In-Reply-To: <20100625125306.7f9b1966@tlielax.poochiereds.net>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.12
Sender: linux-kernel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-kernel.vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1003142>
Jeff Layton <jlayton@samba.org> wrote:
> Looks like it mostly uses the ctime. IMO, the mtime would be a better
> choice since it changes less frequently, but I don't guess that it
> matters very much.
I'd've thought mtime changes more frequently since that's altered when data is
written. ctime is changed when attributes are changed.
Note that Ext4 appears to have a file creation time field in its inode
(struct ext4_inode::i_crtime[_extra]). Can Samba be made to use that?
David

View file

@ -0,0 +1,65 @@
From: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Subject: Re: [RFC][PATCH 06/10] cifs: define inode-level cache object and register them
Date: Sat, 26 Jun 2010 00:04:28 +0100
Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley
Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United
Kingdom.
Registered in England and Wales under Company Registration No. 3798903
Lines: 18
Message-ID: <20123.1277507068@redhat.com>
References: <20100625182651.36800d06@tlielax.poochiereds.net> <20100625125306.7f9b1966@tlielax.poochiereds.net> <4C24A606.5040001@suse.de> <1277220214-3597-1-git-send-email-sjayaraman@suse.de> <yes> <9822.1277312573@redhat.com> <22697.1277470549@redhat.com> <18628.1277502398@redhat.com>
Cc: dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>,
Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
samba-technical-w/Ol4Ecudpl8XjKLYN78aQ@public.gmane.org
To: Jeff Layton <jlayton-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Sat Jun 26 01:04:45 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1OSHww-0006Jk-NV
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Sat, 26 Jun 2010 01:04:43 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1751807Ab0FYXEl (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Fri, 25 Jun 2010 19:04:41 -0400
Received: from mx1.redhat.com ([209.132.183.28]:62977 "EHLO mx1.redhat.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1752149Ab0FYXEl (ORCPT <rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>);
Fri, 25 Jun 2010 19:04:41 -0400
Received: from int-mx04.intmail.prod.int.phx2.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.17])
by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o5PN4X40004498
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
Fri, 25 Jun 2010 19:04:34 -0400
Received: from redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1])
by int-mx04.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o5PN4Sld008220;
Fri, 25 Jun 2010 19:04:30 -0400
In-Reply-To: <20100625182651.36800d06-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.17
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1003153>
Jeff Layton <jlayton-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org> wrote:
> IIUC, updating mtime for a write is also an attribute change, and that
> affects ctime. According to the stat(2) manpage:
You're right. Okay, ctime is the more frequently changed.
> > Note that Ext4 appears to have a file creation time field in its inode
> > (struct ext4_inode::i_crtime[_extra]). Can Samba be made to use that?
>
> Is it exposed to userspace in any (standard) way? It would be handy to
> have that. While we're wishing...it might also be nice to have a
> standard way to get at the i_generation from userspace too.
Not at present, but it's something that could be exported by ioctl() or
getxattr().
David

View file

@ -0,0 +1,122 @@
From: Steve French <smfrench@gmail.com>
Subject: Re: [RFC][PATCH 06/10] cifs: define inode-level cache object and
register them
Date: Fri, 25 Jun 2010 18:05:30 -0500
Lines: 51
Message-ID: <AANLkTilOTrHLvLv4XWYZO6xCnYZgYT7gO2M-oKZ6VvqM@mail.gmail.com>
References: <20100625125306.7f9b1966@tlielax.poochiereds.net>
<4C24A606.5040001@suse.de>
<1277220214-3597-1-git-send-email-sjayaraman@suse.de>
<9822.1277312573@redhat.com>
<22697.1277470549@redhat.com>
<18628.1277502398@redhat.com>
<20100625182651.36800d06@tlielax.poochiereds.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: QUOTED-PRINTABLE
Cc: David Howells <dhowells@redhat.com>,
Suresh Jayaraman <sjayaraman@suse.de>,
linux-cifs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org, samba-technical@lists.samba.org,
Jeff Layton <jlayton@redhat.com>
To: Jeff Layton <jlayton@samba.org>,
"Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>,
Mingming Cao <mcao@us.ibm.com>
X-From: linux-kernel-owner@vger.kernel.org Sat Jun 26 01:05:41 2010
Return-path: <linux-kernel-owner@vger.kernel.org>
Envelope-to: glk-linux-kernel-3@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-kernel-owner@vger.kernel.org>)
id 1OSHxs-0006a8-BA
for glk-linux-kernel-3@lo.gmane.org; Sat, 26 Jun 2010 01:05:40 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1756188Ab0FYXFd convert rfc822-to-quoted-printable (ORCPT
<rfc822;glk-linux-kernel-3@m.gmane.org>);
Fri, 25 Jun 2010 19:05:33 -0400
Received: from mail-qw0-f46.google.com ([209.85.216.46]:51369 "EHLO
mail-qw0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1751575Ab0FYXFb convert rfc822-to-8bit (ORCPT
<rfc822;linux-kernel@vger.kernel.org>);
Fri, 25 Jun 2010 19:05:31 -0400
Received: by qwi4 with SMTP id 4so742644qwi.19
for <multiple recipients>; Fri, 25 Jun 2010 16:05:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=gamma;
h=domainkey-signature:mime-version:received:received:in-reply-to
:references:date:message-id:subject:from:to:cc:content-type
:content-transfer-encoding;
bh=6wKQkGOEeUGN4oPR3Nm4SRxtJr/EBwN8ENmpLnfdCDU=;
b=X7L6W0MtpQeW/4iBuj+oDlcP2yCJ3qwUs9lHBq1fRW6WdYblHXjmaN8o++3GDPLAg5
0MD07zxbYTGXRSrgCjCrGVm0tT88/6hY2a/rB8g68h/Qso2sIHa7B1iIN8JRR4pPWle0
sVjp9Xy/bQn2e0uE481Ii1TLHuWYA/QDXZreU=
DomainKey-Signature: a=rsa-sha1; c=nofws;
d=gmail.com; s=gamma;
h=mime-version:in-reply-to:references:date:message-id:subject:from:to
:cc:content-type:content-transfer-encoding;
b=B+7qQvdOpN5a/KCRrDbssKZX8D3SnP73VMHd9RpkqP9nCHCmSLAgbeH03+/m6CLVAo
G+NKWqWtknwPBkYqT/bdP2XEak1yr+0rjOqjUaNvaT7AhzsyHEJBkaNnsbS3qaRy39OP
S7OkAyHfmgdeNAHkKnKRF73hfpvgAqR9X4bn8=
Received: by 10.224.59.223 with SMTP id m31mr1130670qah.63.1277507130411; Fri,
25 Jun 2010 16:05:30 -0700 (PDT)
Received: by 10.229.46.136 with HTTP; Fri, 25 Jun 2010 16:05:30 -0700 (PDT)
In-Reply-To: <20100625182651.36800d06@tlielax.poochiereds.net>
Sender: linux-kernel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-kernel.vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1003154>
On Fri, Jun 25, 2010 at 5:26 PM, Jeff Layton <jlayton@samba.org> wrote:
>
> On Fri, 25 Jun 2010 22:46:38 +0100
> David Howells <dhowells@redhat.com> wrote:
>
> > Jeff Layton <jlayton@samba.org> wrote:
> >
> > > Looks like it mostly uses the ctime. IMO, the mtime would be a be=
tter
> > > choice since it changes less frequently, but I don't guess that i=
t
> > > matters very much.
> >
> > I'd've thought mtime changes more frequently since that's altered w=
hen data is
> > written. =A0ctime is changed when attributes are changed.
> >
>
> IIUC, updating mtime for a write is also an attribute change, and tha=
t
> affects ctime. According to the stat(2) manpage:
>
> =A0 =A0 =A0 The field st_ctime is changed by writing or by setting =A0=
inode =A0informa-
> =A0 =A0 =A0 tion (i.e., owner, group, link count, mode, etc.).
>
> > Note that Ext4 appears to have a file creation time field in its in=
ode
> > (struct ext4_inode::i_crtime[_extra]). =A0Can Samba be made to use =
that?
> >
>
> Is it exposed to userspace in any (standard) way? It would be handy t=
o
> have that. While we're wishing...it might also be nice to have a
> standard way to get at the i_generation from userspace too.
>
Yes - I have talked with MingMing and Aneesh about those (NFS may
someday be able to use those too).=A0 An obstacle in the past had been
that samba server stores its own fake creation time in an ndr encoded
xattr which complicates things.
MingMing/Annesh -
Xattr or other way to get at birth time?
--
Thanks,
Steve

View file

@ -0,0 +1,174 @@
From: Mingming Cao <mcao@us.ibm.com>
Subject: Re: [RFC][PATCH 06/10] cifs: define inode-level cache object and
register them
Date: Fri, 25 Jun 2010 17:52:24 -0700
Lines: 92
Message-ID: <OFB55E8EC7.E8DD23D5-ON8725774E.0004921E-8825774E.0004CC31@us.ibm.com>
References: <20100625125306.7f9b1966@tlielax.poochiereds.net> <4C24A606.5040001@suse.de>
<1277220214-3597-1-git-send-email-sjayaraman@suse.de> <9822.1277312573@redhat.com>
<22697.1277470549@redhat.com> <18628.1277502398@redhat.com> <20100625182651.36800d06@tlielax.poochiereds.net>
<AANLkTilOTrHLvLv4XWYZO6xCnYZgYT7gO2M-oKZ6VvqM@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: linux-cifs@vger.kernel.org, Jeff Layton <jlayton@redhat.com>,
samba-technical@lists.samba.org, linux-kernel@vger.kernel.org,
David Howells <dhowells@redhat.com>, linux-fsdevel@vger.kernel.org,
"Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
To: Steve French <smfrench@gmail.com>
X-From: samba-technical-bounces@lists.samba.org Sat Jun 26 13:36:56 2010
Return-path: <samba-technical-bounces@lists.samba.org>
Envelope-to: gnsi-samba-technical@m.gmane.org
Received: from fn.samba.org ([216.83.154.106] helo=lists.samba.org)
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <samba-technical-bounces@lists.samba.org>)
id 1OSTgu-00025d-6P
for gnsi-samba-technical@m.gmane.org; Sat, 26 Jun 2010 13:36:56 +0200
Received: from fn.samba.org (localhost [127.0.0.1])
by lists.samba.org (Postfix) with ESMTP id 1ED11AD2C4;
Sat, 26 Jun 2010 05:36:45 -0600 (MDT)
X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on fn.samba.org
X-Spam-Level:
X-Spam-Status: No, score=-6.6 required=3.8 tests=BAYES_00,HTML_MESSAGE,
RCVD_IN_DNSWL_MED,SPF_PASS autolearn=ham version=3.2.5
X-Original-To: samba-technical@lists.samba.org
Delivered-To: samba-technical@lists.samba.org
Received: from e34.co.us.ibm.com (e34.co.us.ibm.com [32.97.110.152])
by lists.samba.org (Postfix) with ESMTP id 30F90AD282
for <samba-technical@lists.samba.org>;
Fri, 25 Jun 2010 18:52:24 -0600 (MDT)
Received: from d03relay01.boulder.ibm.com (d03relay01.boulder.ibm.com
[9.17.195.226])
by e34.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id o5Q0iN1h017083
for <samba-technical@lists.samba.org>; Fri, 25 Jun 2010 18:44:23 -0600
Received: from d03av01.boulder.ibm.com (d03av01.boulder.ibm.com [9.17.195.167])
by d03relay01.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id
o5Q0qQTN175324
for <samba-technical@lists.samba.org>; Fri, 25 Jun 2010 18:52:26 -0600
Received: from d03av01.boulder.ibm.com (loopback [127.0.0.1])
by d03av01.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP
id o5Q0qPCF006767
for <samba-technical@lists.samba.org>; Fri, 25 Jun 2010 18:52:26 -0600
Received: from d03nm128.boulder.ibm.com (d03nm128.boulder.ibm.com
[9.17.195.32])
by d03av01.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id
o5Q0qPrh006760; Fri, 25 Jun 2010 18:52:25 -0600
In-Reply-To: <AANLkTilOTrHLvLv4XWYZO6xCnYZgYT7gO2M-oKZ6VvqM@mail.gmail.com>
X-KeepSent: B55E8EC7:E8DD23D5-8725774E:0004921E;
type=4; name=$KeepSent
X-Mailer: Lotus Notes Build V852_M2_03302010 March 30, 2010
X-MIMETrack: Serialize by Router on D03NM128/03/M/IBM(Release 8.0.1|February
07, 2008) at 06/25/2010 18:52:25
X-Mailman-Approved-At: Sat, 26 Jun 2010 05:36:42 -0600
X-Content-Filtered-By: Mailman/MimeDel 2.1.12
X-BeenThere: samba-technical@lists.samba.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "Discussions on Samba internals. For general questions please
subscribe to the list samba@samba.org"
<samba-technical.lists.samba.org>
List-Unsubscribe: <https://lists.samba.org/mailman/options/samba-technical>,
<mailto:samba-technical-request@lists.samba.org?subject=unsubscribe>
List-Archive: <http://lists.samba.org/pipermail/samba-technical>
List-Post: <mailto:samba-technical@lists.samba.org>
List-Help: <mailto:samba-technical-request@lists.samba.org?subject=help>
List-Subscribe: <https://lists.samba.org/mailman/listinfo/samba-technical>,
<mailto:samba-technical-request@lists.samba.org?subject=subscribe>
Sender: samba-technical-bounces@lists.samba.org
Errors-To: samba-technical-bounces@lists.samba.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1003208>
Steve French <smfrench@gmail.com> wrote on 06/25/2010 04:05:30 PM:
> Steve French <smfrench@gmail.com>
> 06/25/2010 04:05 PM
>
> To
>
> Jeff Layton <jlayton@samba.org>, "Aneesh Kumar K.V"
> <aneesh.kumar@linux.vnet.ibm.com>, Mingming Cao/Beaverton/IBM@IBMUS
>
> cc
>
> David Howells <dhowells@redhat.com>, Suresh Jayaraman
> <sjayaraman@suse.de>, linux-cifs@vger.kernel.org, linux-
> fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, samba-
> technical@lists.samba.org, Jeff Layton <jlayton@redhat.com>
>
> Subject
>
> Re: [RFC][PATCH 06/10] cifs: define inode-level cache object and
> register them
>
> On Fri, Jun 25, 2010 at 5:26 PM, Jeff Layton <jlayton@samba.org> wrot=
e:
> >
> > On Fri, 25 Jun 2010 22:46:38 +0100
> > David Howells <dhowells@redhat.com> wrote:
> >
> > > Jeff Layton <jlayton@samba.org> wrote:
> > >
> > > > Looks like it mostly uses the ctime. IMO, the mtime would be a
better
> > > > choice since it changes less frequently, but I don't guess that=
it
> > > > matters very much.
> > >
> > > I'd've thought mtime changes more frequently since that's
> altered when data is
> > > written. =A0ctime is changed when attributes are changed.
> > >
> >
> > IIUC, updating mtime for a write is also an attribute change, and t=
hat
> > affects ctime. According to the stat(2) manpage:
> >
> > =A0 =A0 =A0 The field st_ctime is changed by writing or by setting
> =A0inode =A0informa-
> > =A0 =A0 =A0 tion (i.e., owner, group, link count, mode, etc.).
> >
> > > Note that Ext4 appears to have a file creation time field in its
inode
> > > (struct ext4_inode::i_crtime[_extra]). =A0Can Samba be made to us=
e
that?
> > >
> >
> > Is it exposed to userspace in any (standard) way? It would be handy=
to
> > have that. While we're wishing...it might also be nice to have a
> > standard way to get at the i_generation from userspace too.
> >
>
> Yes - I have talked with MingMing and Aneesh about those (NFS may
> someday be able to use those too).=A0 An obstacle in the past had bee=
n
> that samba server stores its own fake creation time in an ndr encoded=
> xattr which complicates things.
>
> MingMing/Annesh -
> Xattr or other way to get at birth time?
>
>
Not yet,
The ext4 file creation time only accesable from the kernel at the mome=
nt.
There were discussion
to make this information avaliable via xattr before, but was rejected,
since most people
agree that making this info avalibele via stat() is more standard. Howe=
ver
modifying stat() would imply
big interface change. thus no action has been taken yet.
> --
> Thanks,
>
> Steve=

View file

@ -0,0 +1,156 @@
From: "Aneesh Kumar K. V" <aneesh.kumar@linux.vnet.ibm.com>
Subject: Re: [RFC][PATCH 06/10] cifs: define inode-level cache object and register them
Date: Sun, 27 Jun 2010 23:47:21 +0530
Lines: 100
Message-ID: <871vbscpce.fsf@linux.vnet.ibm.com>
References: <20100625125306.7f9b1966@tlielax.poochiereds.net> <4C24A606.5040001@suse.de> <1277220214-3597-1-git-send-email-sjayaraman@suse.de> <9822.1277312573@redhat.com> <22697.1277470549@redhat.com> <18628.1277502398@redhat.com> <20100625182651.36800d06@tlielax.poochiereds.net> <AANLkTilOTrHLvLv4XWYZO6xCnYZgYT7gO2M-oKZ6VvqM@mail.gmail.com> <OFB55E8EC7.E8DD23D5-ON8725774E.0004921E-8825774E.0004CC31@us.ibm.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: QUOTED-PRINTABLE
Cc: David Howells <dhowells@redhat.com>,
Jeff Layton <jlayton@redhat.com>,
Jeff Layton <jlayton@samba.org>, linux-cifs@vger.kernel.org,
linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
samba-technical@lists.samba.org,
Suresh Jayaraman <sjayaraman@suse.de>
To: Mingming Cao <mcao@us.ibm.com>, Steve French <smfrench@gmail.com>,
"DENIEL Philippe" <philippe.deniel@cea.fr>
X-From: linux-kernel-owner@vger.kernel.org Sun Jun 27 20:18:00 2010
Return-path: <linux-kernel-owner@vger.kernel.org>
Envelope-to: glk-linux-kernel-3@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-kernel-owner@vger.kernel.org>)
id 1OSwQZ-0003Kh-Vu
for glk-linux-kernel-3@lo.gmane.org; Sun, 27 Jun 2010 20:18:00 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1754631Ab0F0SRq convert rfc822-to-quoted-printable (ORCPT
<rfc822;glk-linux-kernel-3@m.gmane.org>);
Sun, 27 Jun 2010 14:17:46 -0400
Received: from e23smtp07.au.ibm.com ([202.81.31.140]:52430 "EHLO
e23smtp07.au.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1753837Ab0F0SRl convert rfc822-to-8bit (ORCPT
<rfc822;linux-kernel@vger.kernel.org>);
Sun, 27 Jun 2010 14:17:41 -0400
Received: from d23relay05.au.ibm.com (d23relay05.au.ibm.com [202.81.31.247])
by e23smtp07.au.ibm.com (8.14.4/8.13.1) with ESMTP id o5RIHbfJ012483;
Mon, 28 Jun 2010 04:17:37 +1000
Received: from d23av03.au.ibm.com (d23av03.au.ibm.com [9.190.234.97])
by d23relay05.au.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id o5RIHW9f1130634;
Mon, 28 Jun 2010 04:17:32 +1000
Received: from d23av03.au.ibm.com (loopback [127.0.0.1])
by d23av03.au.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id o5RIHVcR027534;
Mon, 28 Jun 2010 04:17:32 +1000
Received: from skywalker.linux.vnet.ibm.com ([9.77.196.78])
by d23av03.au.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id o5RIHMFl027485;
Mon, 28 Jun 2010 04:17:24 +1000
In-Reply-To: <OFB55E8EC7.E8DD23D5-ON8725774E.0004921E-8825774E.0004CC31@us.ibm.com>
User-Agent: Notmuch/ (http://notmuchmail.org) Emacs/24.0.50.1 (i686-pc-linux-gnu)
Sender: linux-kernel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-kernel.vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1003357>
On Fri, 25 Jun 2010 17:52:24 -0700, Mingming Cao <mcao@us.ibm.com> wrot=
e:
>=20
>=20
> Steve French <smfrench@gmail.com> wrote on 06/25/2010 04:05:30 PM:
>=20
> > Steve French <smfrench@gmail.com>
> > 06/25/2010 04:05 PM
> >
> > To
> >
> > Jeff Layton <jlayton@samba.org>, "Aneesh Kumar K.V"
> > <aneesh.kumar@linux.vnet.ibm.com>, Mingming Cao/Beaverton/IBM@IBMUS
> >
> > cc
> >
> > David Howells <dhowells@redhat.com>, Suresh Jayaraman
> > <sjayaraman@suse.de>, linux-cifs@vger.kernel.org, linux-
> > fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, samba-
> > technical@lists.samba.org, Jeff Layton <jlayton@redhat.com>
> >
> > Subject
> >
> > Re: [RFC][PATCH 06/10] cifs: define inode-level cache object and
> > register them
> >
> > On Fri, Jun 25, 2010 at 5:26 PM, Jeff Layton <jlayton@samba.org> wr=
ote:
> > >
> > > On Fri, 25 Jun 2010 22:46:38 +0100
> > > David Howells <dhowells@redhat.com> wrote:
> > >
> > > > Jeff Layton <jlayton@samba.org> wrote:
> > > >
> > > > > Looks like it mostly uses the ctime. IMO, the mtime would be =
a
> better
> > > > > choice since it changes less frequently, but I don't guess th=
at it
> > > > > matters very much.
> > > >
> > > > I'd've thought mtime changes more frequently since that's
> > altered when data is
> > > > written. =C2=A0ctime is changed when attributes are changed.
> > > >
> > >
> > > IIUC, updating mtime for a write is also an attribute change, and=
that
> > > affects ctime. According to the stat(2) manpage:
> > >
> > > =C2=A0 =C2=A0 =C2=A0 The field st_ctime is changed by writing or =
by setting
> > =C2=A0inode =C2=A0informa-
> > > =C2=A0 =C2=A0 =C2=A0 tion (i.e., owner, group, link count, mode, =
etc.).
> > >
> > > > Note that Ext4 appears to have a file creation time field in it=
s
> inode
> > > > (struct ext4_inode::i_crtime[_extra]). =C2=A0Can Samba be made =
to use
> that?
> > > >
> > >
> > > Is it exposed to userspace in any (standard) way? It would be han=
dy to
> > > have that. While we're wishing...it might also be nice to have a
> > > standard way to get at the i_generation from userspace too.
> > >
> >
> > Yes - I have talked with MingMing and Aneesh about those (NFS may
> > someday be able to use those too).=C2=A0 An obstacle in the past ha=
d been
> > that samba server stores its own fake creation time in an ndr encod=
ed
> > xattr which complicates things.
> >
> > MingMing/Annesh -
> > Xattr or other way to get at birth time?
> >
> >
>=20
> Not yet,
> The ext4 file creation time only accesable from the kernel at the mo=
ment.
> There were discussion
> to make this information avaliable via xattr before, but was rejected=
,
> since most people
> agree that making this info avalibele via stat() is more standard. Ho=
wever
> modifying stat() would imply
> big interface change. thus no action has been taken yet.
NFS ganesha pNFS also had a requirement for getting i_generation and
inode number in userspace. So may be we should now look at updating
stat or add a variant syscall that include i_generation and create time
in the return value
-aneesh

View file

@ -0,0 +1,66 @@
From: Christoph Hellwig <hch-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
Subject: Re: [RFC][PATCH 06/10] cifs: define inode-level cache object and
register them
Date: Sun, 27 Jun 2010 14:22:29 -0400
Lines: 9
Message-ID: <20100627182229.GA492@infradead.org>
References: <20100625125306.7f9b1966@tlielax.poochiereds.net>
<4C24A606.5040001@suse.de>
<1277220214-3597-1-git-send-email-sjayaraman@suse.de>
<9822.1277312573@redhat.com>
<22697.1277470549@redhat.com>
<18628.1277502398@redhat.com>
<20100625182651.36800d06@tlielax.poochiereds.net>
<AANLkTilOTrHLvLv4XWYZO6xCnYZgYT7gO2M-oKZ6VvqM@mail.gmail.com>
<OFB55E8EC7.E8DD23D5-ON8725774E.0004921E-8825774E.0004CC31@us.ibm.com>
<871vbscpce.fsf@linux.vnet.ibm.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Cc: Mingming Cao <mcao-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>, Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
DENIEL Philippe <philippe.deniel-KCE40YydGKI@public.gmane.org>,
David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
Jeff Layton <jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
Jeff Layton <jlayton-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>, linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
samba-technical-w/Ol4Ecudpl8XjKLYN78aQ@public.gmane.org,
Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
To: "Aneesh Kumar K. V" <aneesh.kumar-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Sun Jun 27 20:22:46 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1OSwVB-0005TI-SG
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Sun, 27 Jun 2010 20:22:46 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1752811Ab0F0SWo (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Sun, 27 Jun 2010 14:22:44 -0400
Received: from bombadil.infradead.org ([18.85.46.34]:55433 "EHLO
bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1752728Ab0F0SWn (ORCPT
<rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>); Sun, 27 Jun 2010 14:22:43 -0400
Received: from hch by bombadil.infradead.org with local (Exim 4.72 #1 (Red Hat Linux))
id 1OSwUv-00009z-9N; Sun, 27 Jun 2010 18:22:29 +0000
Content-Disposition: inline
In-Reply-To: <871vbscpce.fsf-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
User-Agent: Mutt/1.5.20 (2009-08-17)
X-SRS-Rewrite: SMTP reverse-path rewritten from <hch-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org> by bombadil.infradead.org
See http://www.infradead.org/rpr.html
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1003358>
On Sun, Jun 27, 2010 at 11:47:21PM +0530, Aneesh Kumar K. V wrote:
> NFS ganesha pNFS also had a requirement for getting i_generation and
> inode number in userspace. So may be we should now look at updating
> stat or add a variant syscall that include i_generation and create time
> in the return value
What's missing in knfsd that you feel the sudden urge to move backwards
to a userspace nfsd (one with a horribly crappy codebase, too).

View file

@ -0,0 +1,89 @@
From: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
Subject: Re: [RFC][PATCH 05/10] cifs: define superblock-level cache index
objects and register them
Date: Mon, 28 Jun 2010 18:23:13 +0530
Lines: 48
Message-ID: <4C289B39.4060901@suse.de>
References: <22746.1277470713@redhat.com> <4C24A4A0.90408@suse.de> <1277220206-3559-1-git-send-email-sjayaraman@suse.de> <yes> <9720.1277312290@redhat.com> <23204.1277472412@redhat.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Cc: Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
To: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Mon Jun 28 14:53:24 2010
Return-path: <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Envelope-to: glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>)
id 1OTDq0-00054Q-At
for glkc-linux-cifs-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Mon, 28 Jun 2010 14:53:24 +0200
Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand
id S1754503Ab0F1MxX (ORCPT <rfc822;glkc-linux-cifs@m.gmane.org>);
Mon, 28 Jun 2010 08:53:23 -0400
Received: from cantor2.suse.de ([195.135.220.15]:48374 "EHLO mx2.suse.de"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1754456Ab0F1MxW (ORCPT <rfc822;linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>);
Mon, 28 Jun 2010 08:53:22 -0400
Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.221.2])
by mx2.suse.de (Postfix) with ESMTP id 7BDC18672B;
Mon, 28 Jun 2010 14:53:21 +0200 (CEST)
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.5) Gecko/20091130 SUSE/3.0.0-1.1.1 Thunderbird/3.0
In-Reply-To: <23204.1277472412-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Precedence: bulk
List-ID: <linux-cifs.vger.kernel.org>
X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1003530>
On 06/25/2010 06:56 PM, David Howells wrote:
> David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> wrote:
>
>>>> validate the root directory of the share in some way?
>>>
>>> I don't know if there is a way to do this.
>>
>> Is there an inode number or something? Even the creation time might do.
>
> Looking in cifspdu.h, there are a number of things that it might be possible
> to use.
>
> (1) FILE_ALL_INFO: CreationTime, IndexNumber, IndexNumber1, FileName
> (assuming this isn't flattened to '\' or something for the root of a
> share.
>
> (2) FILE_UNIX_BASIC_INFO: DevMajor, DevMinor, UniqueId.
>
> (3) FILE_INFO_STANDARD: CreationDate, CreationTime.
>
> (4) FILE_INFO_BASIC: CreationTime.
>
> (5) FILE_DIRECTORY_INFO: FileIndex, CreationTime, FileName.
>
> (6) SEARCH_ID_FULL_DIR_INFO: FileIndex, CreationTime, UniqueId, FileName.
>
> (7) FILE_BOTH_DIRECTORY_INFO: FileIndex, CreationTime, ShortName, FileName.
>
> (8) OPEN_RSP_EXT: Fid, CreationTime, VolumeGUID, FileId.
>
> You may have to choose different sets of things, depending on what the server
> has on offer. Also, don't forget, if you can't work out whether a share is
Did you mean we need to validate differently for different servers?
I just did some testing and it looks like we could rely on CreationTime,
IndexNumber for validating with Windows servers (FileName is relative to
the mapped drive) and UniqueId for validating with Samba servers. I did
not test all possibilities (there could be more).
> coherent or not from the above, you can always use LastWriteTime, ChangeTime
> and EndOfFile and just discard the whole subtree if they differ.
>
Thanks,
--
Suresh Jayaraman

View file

@ -0,0 +1,63 @@
From: David Howells <dhowells@redhat.com>
Subject: Re: [RFC][PATCH 05/10] cifs: define superblock-level cache index objects and register them
Date: Mon, 28 Jun 2010 14:24:45 +0100
Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley
Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United
Kingdom.
Registered in England and Wales under Company Registration No. 3798903
Lines: 17
Message-ID: <9513.1277731485@redhat.com>
References: <4C289B39.4060901@suse.de> <22746.1277470713@redhat.com> <4C24A4A0.90408@suse.de> <1277220206-3559-1-git-send-email-sjayaraman@suse.de> <yes> <9720.1277312290@redhat.com> <23204.1277472412@redhat.com>
Cc: dhowells@redhat.com, Steve French <smfrench@gmail.com>,
linux-cifs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org
To: Suresh Jayaraman <sjayaraman@suse.de>
X-From: linux-fsdevel-owner@vger.kernel.org Mon Jun 28 15:24:57 2010
Return-path: <linux-fsdevel-owner@vger.kernel.org>
Envelope-to: lnx-linux-fsdevel@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-fsdevel-owner@vger.kernel.org>)
id 1OTEKW-00048k-S3
for lnx-linux-fsdevel@lo.gmane.org; Mon, 28 Jun 2010 15:24:57 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1751608Ab0F1NYz (ORCPT <rfc822;lnx-linux-fsdevel@m.gmane.org>);
Mon, 28 Jun 2010 09:24:55 -0400
Received: from mx1.redhat.com ([209.132.183.28]:26085 "EHLO mx1.redhat.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1751395Ab0F1NYy (ORCPT <rfc822;linux-fsdevel@vger.kernel.org>);
Mon, 28 Jun 2010 09:24:54 -0400
Received: from int-mx08.intmail.prod.int.phx2.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.21])
by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o5SDOmfA019811
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
Mon, 28 Jun 2010 09:24:49 -0400
Received: from redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1])
by int-mx08.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o5SDOjHf030340;
Mon, 28 Jun 2010 09:24:47 -0400
In-Reply-To: <4C289B39.4060901@suse.de>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.21
Sender: linux-fsdevel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-fsdevel.vger.kernel.org>
X-Mailing-List: linux-fsdevel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1003543>
Suresh Jayaraman <sjayaraman@suse.de> wrote:
> Did you mean we need to validate differently for different servers?
You may need to, yes, as different servers may make different attributes
available.
This isn't too bad. Each server index record in the cache has freeform
auxiliary data, just as does each file data record. You could, say, stick a
byte at the front that indicates what you've stored in there.
David
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

View file

@ -0,0 +1,92 @@
From: Timur Tabi <timur.tabi@gmail.com>
Subject: Re: [PATCH v2 5/7] powerpc/85xx: Add MChk handler for SRIO port
Date: Wed, 30 Jun 2010 15:55:58 -0500
Lines: 33
Message-ID: <AANLkTine3pc2Ai2Woj81Y9fS_KgGs1sIMb2NMR6G74ww@mail.gmail.com>
References: <20100308191005.GE4324@amak.tundra.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: QUOTED-PRINTABLE
Cc: mporter@kernel.crashing.org, linux-kernel@vger.kernel.org,
linuxppc-dev@lists.ozlabs.org, thomas.moll@sysgo.com
To: Alexandre Bounine <abounine@tundra.com>
X-From: linux-kernel-owner@vger.kernel.org Wed Jun 30 22:56:40 2010
Return-path: <linux-kernel-owner@vger.kernel.org>
Envelope-to: glk-linux-kernel-3@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-kernel-owner@vger.kernel.org>)
id 1OU4Kl-0005Kf-V4
for glk-linux-kernel-3@lo.gmane.org; Wed, 30 Jun 2010 22:56:40 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1756668Ab0F3U4b convert rfc822-to-quoted-printable (ORCPT
<rfc822;glk-linux-kernel-3@m.gmane.org>);
Wed, 30 Jun 2010 16:56:31 -0400
Received: from mail-vw0-f46.google.com ([209.85.212.46]:41333 "EHLO
mail-vw0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1753416Ab0F3U43 convert rfc822-to-8bit (ORCPT
<rfc822;linux-kernel@vger.kernel.org>);
Wed, 30 Jun 2010 16:56:29 -0400
Received: by vws5 with SMTP id 5so1449398vws.19
for <linux-kernel@vger.kernel.org>; Wed, 30 Jun 2010 13:56:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=gamma;
h=domainkey-signature:received:mime-version:received:in-reply-to
:references:from:date:message-id:subject:to:cc:content-type
:content-transfer-encoding;
bh=FTlit9cHTz/9rLGcvA5/pEZlzxAQ5x20v8HE5XYFwYM=;
b=NFbjnxZ4KwcjTy4tFh+BnhWPEGeYTw6z918yIouRaMmbEDph56xq26K9aTBokuYHqe
UgFjBn7XWcxvqJPyCetfsDRG+F3M2XwCq/DSCswSPtXSLsy8WKm7cMXVS3hjiO8sMZ97
mRMGZkYBJHjWP+ulkBXiq6q7/OQuE8Dkl+rWM=
DomainKey-Signature: a=rsa-sha1; c=nofws;
d=gmail.com; s=gamma;
h=mime-version:in-reply-to:references:from:date:message-id:subject:to
:cc:content-type:content-transfer-encoding;
b=r0N6AOAg+TSvY2kPQPahldj4iRU9oUoSLtHA7JXG2QU4CR9O5GBhxAtr2aY99qUPZd
tFS0ZWRAb9cmOgiZhTpNxsBjCJ/e/DQ1ccP5rZ/U40q1SJ1KwN92hqpOoppZ0tkqSB7/
UlQtsvPSK7a0bYqufEmscfAi98w1+mfZIbK6U=
Received: by 10.220.161.203 with SMTP id s11mr5093041vcx.195.1277931388141;
Wed, 30 Jun 2010 13:56:28 -0700 (PDT)
Received: by 10.220.161.137 with HTTP; Wed, 30 Jun 2010 13:55:58 -0700 (PDT)
In-Reply-To: <20100308191005.GE4324@amak.tundra.com>
Sender: linux-kernel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-kernel.vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1004632>
On Mon, Mar 8, 2010 at 2:10 PM, Alexandre Bounine <abounine@tundra.com>=
wrote:
>
> From: Alexandre Bounine <alexandre.bounine@idt.com>
>
> Add Machine Check exception handling into RapidIO port driver
> for Freescale SoCs (MPC85xx).
>
> Signed-off-by: Alexandre Bounine <alexandre.bounine@idt.com>
> Tested-by: Thomas Moll <thomas.moll@sysgo.com>
=2E..
> +static int fsl_rio_mcheck_exception(struct pt_regs *regs)
> +{
> + =A0 =A0 =A0 const struct exception_table_entry *entry =3D NULL;
> + =A0 =A0 =A0 unsigned long reason =3D (mfspr(SPRN_MCSR) & MCSR_MASK)=
;
MCSR_MASK is not defined anywhere, so when I compile this code, I get t=
his:
CC arch/powerpc/sysdev/fsl_rio.o
arch/powerpc/sysdev/fsl_rio.c: In function 'fsl_rio_mcheck_exception':
arch/powerpc/sysdev/fsl_rio.c:248: error: 'MCSR_MASK' undeclared
(first use in this function)
arch/powerpc/sysdev/fsl_rio.c:248: error: (Each undeclared identifier
is reported only once
arch/powerpc/sysdev/fsl_rio.c:248: error: for each function it appears =
in.)
--=20
Timur Tabi
Linux kernel developer at Freescale

View file

@ -0,0 +1,68 @@
From: Timur Tabi <timur.tabi@gmail.com>
Subject: Re: [PATCH v2 5/7] powerpc/85xx: Add MChk handler for SRIO port
Date: Wed, 30 Jun 2010 16:00:56 -0500
Lines: 12
Message-ID: <AANLkTinKbimKyLpvFD7KOvavshu_n8gRcp2BvEJj0XZQ@mail.gmail.com>
References: <20100308191005.GE4324@amak.tundra.com> <AANLkTine3pc2Ai2Woj81Y9fS_KgGs1sIMb2NMR6G74ww@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Cc: mporter@kernel.crashing.org, linux-kernel@vger.kernel.org,
linuxppc-dev@lists.ozlabs.org, thomas.moll@sysgo.com
To: Alexandre Bounine <abounine@tundra.com>
X-From: linux-kernel-owner@vger.kernel.org Wed Jun 30 23:01:37 2010
Return-path: <linux-kernel-owner@vger.kernel.org>
Envelope-to: glk-linux-kernel-3@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-kernel-owner@vger.kernel.org>)
id 1OU4PZ-0000HS-0T
for glk-linux-kernel-3@lo.gmane.org; Wed, 30 Jun 2010 23:01:37 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1755703Ab0F3VB2 (ORCPT <rfc822;glk-linux-kernel-3@m.gmane.org>);
Wed, 30 Jun 2010 17:01:28 -0400
Received: from mail-vw0-f46.google.com ([209.85.212.46]:53141 "EHLO
mail-vw0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1751784Ab0F3VB1 (ORCPT
<rfc822;linux-kernel@vger.kernel.org>);
Wed, 30 Jun 2010 17:01:27 -0400
Received: by vws5 with SMTP id 5so1454517vws.19
for <linux-kernel@vger.kernel.org>; Wed, 30 Jun 2010 14:01:26 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=gamma;
h=domainkey-signature:received:mime-version:received:in-reply-to
:references:from:date:message-id:subject:to:cc:content-type;
bh=+BUKti+Oa03CrnVvRyT591FhcoxqR7S2rzZHtD6WSuY=;
b=O/b04HLJrmTE0aIq2mNCRznQrXxAAGHSMarHR5mrgYptmr68froM6UgmDqTZFLhNiH
BcT8g+AziiqSV1k/ckXjRyVR0s9Jdv4g2phMNtp8NStbPfOPpLDkUKTQadphOTonCfeK
e+ZrLBwh+FCoYNAOjvFioBKj6CxN2Oi5xIhPc=
DomainKey-Signature: a=rsa-sha1; c=nofws;
d=gmail.com; s=gamma;
h=mime-version:in-reply-to:references:from:date:message-id:subject:to
:cc:content-type;
b=UcKGhJIXCTTcSvBWwGwLUefPONGygVPsUnTt4nDSl4udB8JKMyi0EghzzgNXUyq4Dz
UCxzZAyxzjvjgsgPS3kzPhSsWG2PRG66pC1OA68RJ5YVOjt55/yOz/yfTqXBVvRSq2fV
QNcKACYHSjkIZ7Uq7ZEW9bEGI5tTKdz++N2UA=
Received: by 10.220.124.73 with SMTP id t9mr5099129vcr.37.1277931686462; Wed,
30 Jun 2010 14:01:26 -0700 (PDT)
Received: by 10.220.161.137 with HTTP; Wed, 30 Jun 2010 14:00:56 -0700 (PDT)
In-Reply-To: <AANLkTine3pc2Ai2Woj81Y9fS_KgGs1sIMb2NMR6G74ww@mail.gmail.com>
Sender: linux-kernel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-kernel.vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1004633>
On Wed, Jun 30, 2010 at 3:55 PM, Timur Tabi <timur.tabi@gmail.com> wrote:
> MCSR_MASK is not defined anywhere, so when I compile this code, I get this:
Never mind. I see that it's been fixed already, and that the patch
that removed MCSR_MASK was posted around the same time that this patch
was posted.
--
Timur Tabi
Linux kernel developer at Freescale

View file

@ -0,0 +1,60 @@
From: Michael Neuling <mikey@neuling.org>
Subject: Re: [PATCH v2 5/7] powerpc/85xx: Add MChk handler for SRIO port
Date: Tue, 03 Aug 2010 16:06:30 +1000
Lines: 15
Message-ID: <4381.1280815590@neuling.org>
References: <20100308191005.GE4324@amak.tundra.com> <AANLkTine3pc2Ai2Woj81Y9fS_KgGs1sIMb2NMR6G74ww@mail.gmail.com> <AANLkTinKbimKyLpvFD7KOvavshu_n8gRcp2BvEJj0XZQ@mail.gmail.com>
Cc: Alexandre Bounine <abounine@tundra.com>,
linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
thomas.moll@sysgo.com
To: Timur Tabi <timur.tabi@gmail.com>
X-From: linux-kernel-owner@vger.kernel.org Tue Aug 03 08:06:45 2010
Return-path: <linux-kernel-owner@vger.kernel.org>
Envelope-to: glk-linux-kernel-3@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-kernel-owner@vger.kernel.org>)
id 1OgAeD-00087x-ED
for glk-linux-kernel-3@lo.gmane.org; Tue, 03 Aug 2010 08:06:45 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1755287Ab0HCGGf (ORCPT <rfc822;glk-linux-kernel-3@m.gmane.org>);
Tue, 3 Aug 2010 02:06:35 -0400
Received: from ozlabs.org ([203.10.76.45]:51158 "EHLO ozlabs.org"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1755139Ab0HCGGd (ORCPT <rfc822;linux-kernel@vger.kernel.org>);
Tue, 3 Aug 2010 02:06:33 -0400
Received: from localhost.localdomain (localhost [127.0.0.1])
by ozlabs.org (Postfix) with ESMTP id B7A371007D1;
Tue, 3 Aug 2010 16:06:31 +1000 (EST)
Received: by localhost.localdomain (Postfix, from userid 1000)
id EDBB7C5EB7; Tue, 3 Aug 2010 16:06:30 +1000 (EST)
Received: from neuling.org (localhost [127.0.0.1])
by localhost.localdomain (Postfix) with ESMTP id E8003C51D3;
Tue, 3 Aug 2010 16:06:30 +1000 (EST)
In-reply-to: <AANLkTinKbimKyLpvFD7KOvavshu_n8gRcp2BvEJj0XZQ@mail.gmail.com>
Comments: In-reply-to Timur Tabi <timur.tabi@gmail.com>
message dated "Wed, 30 Jun 2010 16:00:56 -0500."
X-Mailer: MH-E 8.2; nmh 1.3; GNU Emacs 23.1.1
Sender: linux-kernel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-kernel.vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1017846>
> > MCSR_MASK is not defined anywhere, so when I compile this code, I get this:
>
> Never mind. I see that it's been fixed already, and that the patch
> that removed MCSR_MASK was posted around the same time that this patch
> was posted.
I don't know what happened here but 2.6.35 is broken because of this
problem:
arch/powerpc/sysdev/fsl_rio.c:248: error: 'MCSR_MASK' undeclared (first use in this function)
arch/powerpc/sysdev/fsl_rio.c:248: error: (Each undeclared identifier is reported only once
arch/powerpc/sysdev/fsl_rio.c:248: error: for each function it appears in.)
arch/powerpc/sysdev/fsl_rio.c:250: error: 'MCSR_BUS_RBERR' undeclared (first use in this function)
Mikey

View file

@ -0,0 +1,91 @@
From: "Bounine, Alexandre" <Alexandre.Bounine@idt.com>
Subject: RE: [PATCH v2 5/7] powerpc/85xx: Add MChk handler for SRIO port
Date: Tue, 3 Aug 2010 05:17:54 -0700
Lines: 34
Message-ID: <0CE8B6BE3C4AD74AB97D9D29BD24E5520114309D@CORPEXCH1.na.ads.idt.com>
References: <20100308191005.GE4324@amak.tundra.com> <AANLkTine3pc2Ai2Woj81Y9fS_KgGs1sIMb2NMR6G74ww@mail.gmail.com> <AANLkTinKbimKyLpvFD7KOvavshu_n8gRcp2BvEJj0XZQ@mail.gmail.com> <4381.1280815590@neuling.org>
Mime-Version: 1.0
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: 8BIT
Cc: "Alexandre Bounine" <abounine@tundra.com>,
<linuxppc-dev@lists.ozlabs.org>, <linux-kernel@vger.kernel.org>,
<thomas.moll@sysgo.com>
To: "Michael Neuling" <mikey@neuling.org>,
"Timur Tabi" <timur.tabi@gmail.com>
X-From: linux-kernel-owner@vger.kernel.org Tue Aug 03 14:27:12 2010
Return-path: <linux-kernel-owner@vger.kernel.org>
Envelope-to: glk-linux-kernel-3@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-kernel-owner@vger.kernel.org>)
id 1OgGaG-0002zE-Fr
for glk-linux-kernel-3@lo.gmane.org; Tue, 03 Aug 2010 14:27:04 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1756073Ab0HCM0x (ORCPT <rfc822;glk-linux-kernel-3@m.gmane.org>);
Tue, 3 Aug 2010 08:26:53 -0400
Received: from mxout1.idt.com ([157.165.5.25]:35046 "EHLO mxout1.idt.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1756010Ab0HCM0w convert rfc822-to-8bit (ORCPT
<rfc822;linux-kernel@vger.kernel.org>);
Tue, 3 Aug 2010 08:26:52 -0400
X-Greylist: delayed 521 seconds by postgrey-1.27 at vger.kernel.org; Tue, 03 Aug 2010 08:26:52 EDT
Received: from mail.idt.com (localhost [127.0.0.1])
by mxout1.idt.com (8.13.1/8.13.1) with ESMTP id o73CHxil001904;
Tue, 3 Aug 2010 05:17:59 -0700
Received: from corpml3.corp.idt.com (corpml3.corp.idt.com [157.165.140.25])
by mail.idt.com (8.13.8/8.13.8) with ESMTP id o73CHvit016488;
Tue, 3 Aug 2010 05:17:57 -0700 (PDT)
Received: from CORPEXCH1.na.ads.idt.com (localhost [127.0.0.1])
by corpml3.corp.idt.com (8.11.7p1+Sun/8.11.7) with ESMTP id o73CHtN07516;
Tue, 3 Aug 2010 05:17:55 -0700 (PDT)
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
In-Reply-To: <4381.1280815590@neuling.org>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Topic: [PATCH v2 5/7] powerpc/85xx: Add MChk handler for SRIO port
Thread-Index: Acsy0pTOmhzzm4GETvS4r2R2pYb40wAMtx8w
X-Scanned-By: MIMEDefang 2.43
Sender: linux-kernel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-kernel.vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1017995>
This happened after change to book-e definitions.
There are patches that address this issue.
> -----Original Message-----
> From: Michael Neuling [mailto:mikey@neuling.org]
> Sent: Tuesday, August 03, 2010 2:07 AM
> To: Timur Tabi
> Cc: Alexandre Bounine; linuxppc-dev@lists.ozlabs.org;
linux-kernel@vger.kernel.org;
> thomas.moll@sysgo.com
> Subject: Re: [PATCH v2 5/7] powerpc/85xx: Add MChk handler for SRIO
port
>
> > > MCSR_MASK is not defined anywhere, so when I compile this code, I
get this:
> >
> > Never mind. I see that it's been fixed already, and that the patch
> > that removed MCSR_MASK was posted around the same time that this
patch
> > was posted.
>
> I don't know what happened here but 2.6.35 is broken because of this
> problem:
>
> arch/powerpc/sysdev/fsl_rio.c:248: error: 'MCSR_MASK' undeclared
(first use in this function)
> arch/powerpc/sysdev/fsl_rio.c:248: error: (Each undeclared identifier
is reported only once
> arch/powerpc/sysdev/fsl_rio.c:248: error: for each function it appears
in.)
> arch/powerpc/sysdev/fsl_rio.c:250: error: 'MCSR_BUS_RBERR' undeclared
(first use in this function)
>
> Mikey

View file

@ -0,0 +1,87 @@
From: Timur Tabi <timur@freescale.com>
Subject: Re: [PATCH v2 5/7] powerpc/85xx: Add MChk handler for SRIO port
Date: Tue, 3 Aug 2010 08:01:51 -0500
Lines: 25
Message-ID: <AANLkTinpwYnyc1oN1VbtBgUF6bk6E5q_Gq1Dj3WXV3wc@mail.gmail.com>
References: <20100308191005.GE4324@amak.tundra.com> <AANLkTine3pc2Ai2Woj81Y9fS_KgGs1sIMb2NMR6G74ww@mail.gmail.com>
<AANLkTinKbimKyLpvFD7KOvavshu_n8gRcp2BvEJj0XZQ@mail.gmail.com>
<4381.1280815590@neuling.org> <0CE8B6BE3C4AD74AB97D9D29BD24E5520114309D@CORPEXCH1.na.ads.idt.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Cc: Michael Neuling <mikey@neuling.org>,
Alexandre Bounine <abounine@tundra.com>,
linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
thomas.moll@sysgo.com, Kumar Gala <galak@kernel.crashing.org>
To: "Bounine, Alexandre" <Alexandre.Bounine@idt.com>
X-From: linux-kernel-owner@vger.kernel.org Tue Aug 03 15:02:39 2010
Return-path: <linux-kernel-owner@vger.kernel.org>
Envelope-to: glk-linux-kernel-3@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-kernel-owner@vger.kernel.org>)
id 1OgH8b-0003r0-5v
for glk-linux-kernel-3@lo.gmane.org; Tue, 03 Aug 2010 15:02:33 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1756383Ab0HCNCY (ORCPT <rfc822;glk-linux-kernel-3@m.gmane.org>);
Tue, 3 Aug 2010 09:02:24 -0400
Received: from mail-qy0-f181.google.com ([209.85.216.181]:47377 "EHLO
mail-qy0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1754253Ab0HCNCX (ORCPT
<rfc822;linux-kernel@vger.kernel.org>);
Tue, 3 Aug 2010 09:02:23 -0400
Received: by qyk7 with SMTP id 7so647758qyk.19
for <linux-kernel@vger.kernel.org>; Tue, 03 Aug 2010 06:02:22 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=gamma;
h=domainkey-signature:received:mime-version:sender:received
:in-reply-to:references:from:date:x-google-sender-auth:message-id
:subject:to:cc:content-type;
bh=vTJghTE4Rwcgvgu1RS/86u/ljjztFlVQ5ODYWXBRkUM=;
b=p7S+ZVc0INWI6uXFwsLVTTEnV8wFAB0u0cDLt5qp0gyuMbF9yqXhukSTbYS8Vf8gCk
UFDmrOGjzC1whtvZnRS+Q80vVTR3+1URt/RTCUqirvalLvgluNrzP6sQ3xccFy4LkdLi
nGsgcNEqVwPPZgg3uSqew6B5UIoH7S00YzAYU=
DomainKey-Signature: a=rsa-sha1; c=nofws;
d=gmail.com; s=gamma;
h=mime-version:sender:in-reply-to:references:from:date
:x-google-sender-auth:message-id:subject:to:cc:content-type;
b=qNVeIlTzozhY9MXH5PHYIsAL8T7zOBZ+0hWrBlbEy0PiBHW1AAv9nNd6FspugBZVUW
q7iPmhg0n6Oa3KFBNjs42dInyCPUqiQs10rGTQCJsSVITmZ/NA9sf8FFbI+Dg7xQiJKj
TN/8W0tBK9mUiqVvoO1avTKG1hqyMwTdMqlaM=
Received: by 10.224.73.18 with SMTP id o18mr2669587qaj.354.1280840541149; Tue,
03 Aug 2010 06:02:21 -0700 (PDT)
Received: by 10.220.112.69 with HTTP; Tue, 3 Aug 2010 06:01:51 -0700 (PDT)
In-Reply-To: <0CE8B6BE3C4AD74AB97D9D29BD24E5520114309D@CORPEXCH1.na.ads.idt.com>
X-Google-Sender-Auth: lBedzmn1VMYh0pQjuCJuDw-lNh8
Sender: linux-kernel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-kernel.vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1018009>
On Tue, Aug 3, 2010 at 7:17 AM, Bounine, Alexandre
<Alexandre.Bounine@idt.com> wrote:
> This happened after change to book-e definitions.
> There are patches that address this issue.
And those patches should have been applied before 2.6.35 was released.
Someone dropped the ball. 2.6.35 is broken for a number of PowerPC
boards:
$ make mpc85xx_defconfig
...
$ make
...
CC arch/powerpc/sysdev/fsl_rio.o
arch/powerpc/sysdev/fsl_rio.c: In function 'fsl_rio_mcheck_exception':
arch/powerpc/sysdev/fsl_rio.c:248: error: 'MCSR_MASK' undeclared
(first use in this function)
arch/powerpc/sysdev/fsl_rio.c:248: error: (Each undeclared identifier
is reported only once
arch/powerpc/sysdev/fsl_rio.c:248: error: for each function it appears in.)
make[1]: *** [arch/powerpc/sysdev/fsl_rio.o] Error 1
--
Timur Tabi
Linux kernel developer at Freescale

View file

@ -0,0 +1,109 @@
From: "Bounine, Alexandre" <Alexandre.Bounine@idt.com>
Subject: RE: [PATCH v2 5/7] powerpc/85xx: Add MChk handler for SRIO port
Date: Tue, 3 Aug 2010 06:24:47 -0700
Lines: 40
Message-ID: <0CE8B6BE3C4AD74AB97D9D29BD24E552011430BC@CORPEXCH1.na.ads.idt.com>
References: <20100308191005.GE4324@amak.tundra.com>
<AANLkTine3pc2Ai2Woj81Y9fS_KgGs1sIMb2NMR6G74ww@mail.gmail.com>
<AANLkTinKbimKyLpvFD7KOvavshu_n8gRcp2BvEJj0XZQ@mail.gmail.com>
<4381.1280815590@neuling.org>
<0CE8B6BE3C4AD74AB97D9D29BD24E5520114309D@CORPEXCH1.na.ads.idt.com>
<AANLkTinpwYnyc1oN1VbtBgUF6bk6E5q_Gq1Dj3WXV3wc@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Cc: Michael Neuling <mikey@neuling.org>, linux-kernel@vger.kernel.org,
Alexandre Bounine <abounine@tundra.com>, thomas.moll@sysgo.com,
linuxppc-dev@lists.ozlabs.org
To: "Timur Tabi" <timur@freescale.com>
X-From: linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org Tue Aug 03 15:25:22 2010
Return-path: <linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org>
Envelope-to: glppe-linuxppc-embedded-2@m.gmane.org
Received: from ozlabs.org ([203.10.76.45])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org>)
id 1OgHUd-0006wG-MW
for glppe-linuxppc-embedded-2@m.gmane.org; Tue, 03 Aug 2010 15:25:20 +0200
Received: from bilbo.ozlabs.org (localhost [127.0.0.1])
by ozlabs.org (Postfix) with ESMTP id 54FA51007E4
for <glppe-linuxppc-embedded-2@m.gmane.org>; Tue, 3 Aug 2010 23:25:09 +1000 (EST)
Received: from mxout1.idt.com (mxout1.idt.com [157.165.5.25])
(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
(Client CN "mxout1.idt.com", Issuer "idt.com" (not verified))
by ozlabs.org (Postfix) with ESMTPS id 5C917B70A6
for <linuxppc-dev@lists.ozlabs.org>;
Tue, 3 Aug 2010 23:25:00 +1000 (EST)
Received: from mail.idt.com (localhost [127.0.0.1])
by mxout1.idt.com (8.13.1/8.13.1) with ESMTP id o73DOrjO005661;
Tue, 3 Aug 2010 06:24:54 -0700
Received: from corpml1.corp.idt.com (corpml1.corp.idt.com [157.165.140.20])
by mail.idt.com (8.13.8/8.13.8) with ESMTP id o73DOndw022603;
Tue, 3 Aug 2010 06:24:50 -0700 (PDT)
Received: from CORPEXCH1.na.ads.idt.com (localhost [127.0.0.1])
by corpml1.corp.idt.com (8.11.7p1+Sun/8.11.7) with ESMTP id
o73DOml00291; Tue, 3 Aug 2010 06:24:48 -0700 (PDT)
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
In-Reply-To: <AANLkTinpwYnyc1oN1VbtBgUF6bk6E5q_Gq1Dj3WXV3wc@mail.gmail.com>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Topic: [PATCH v2 5/7] powerpc/85xx: Add MChk handler for SRIO port
Thread-Index: AcszC8UElBYHaZlHSsmvZEE2KBL+0wAAhg7A
X-Scanned-By: MIMEDefang 2.43
X-BeenThere: linuxppc-dev@lists.ozlabs.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Linux on PowerPC Developers Mail List <linuxppc-dev.lists.ozlabs.org>
List-Unsubscribe: <https://lists.ozlabs.org/options/linuxppc-dev>,
<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=unsubscribe>
List-Archive: <http://lists.ozlabs.org/pipermail/linuxppc-dev>
List-Post: <mailto:linuxppc-dev@lists.ozlabs.org>
List-Help: <mailto:linuxppc-dev-request@lists.ozlabs.org?subject=help>
List-Subscribe: <https://lists.ozlabs.org/listinfo/linuxppc-dev>,
<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=subscribe>
Sender: linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org
Errors-To: linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1018016>
Yang Li pointed to these patches in his post from July 23, 2010.
It would be nice to have these patches in mainline code.
> -----Original Message-----
> From: timur.tabi@gmail.com [mailto:timur.tabi@gmail.com] On Behalf Of
Timur Tabi
> Sent: Tuesday, August 03, 2010 9:02 AM
> To: Bounine, Alexandre
> Cc: Michael Neuling; Alexandre Bounine; linuxppc-dev@lists.ozlabs.org;
linux-kernel@vger.kernel.org;
> thomas.moll@sysgo.com; Kumar Gala
> Subject: Re: [PATCH v2 5/7] powerpc/85xx: Add MChk handler for SRIO
port
>
> On Tue, Aug 3, 2010 at 7:17 AM, Bounine, Alexandre
> <Alexandre.Bounine@idt.com> wrote:
> > This happened after change to book-e definitions.
> > There are patches that address this issue.
>
> And those patches should have been applied before 2.6.35 was released.
> Someone dropped the ball. 2.6.35 is broken for a number of PowerPC
> boards:
>
> $ make mpc85xx_defconfig
> ....
> $ make
> ....
> CC arch/powerpc/sysdev/fsl_rio.o
> arch/powerpc/sysdev/fsl_rio.c: In function 'fsl_rio_mcheck_exception':
> arch/powerpc/sysdev/fsl_rio.c:248: error: 'MCSR_MASK' undeclared
> (first use in this function)
> arch/powerpc/sysdev/fsl_rio.c:248: error: (Each undeclared identifier
> is reported only once
> arch/powerpc/sysdev/fsl_rio.c:248: error: for each function it appears
in.)
> make[1]: *** [arch/powerpc/sysdev/fsl_rio.o] Error 1
>
> --
> Timur Tabi
> Linux kernel developer at Freescale

View file

@ -0,0 +1,96 @@
From: Michael Neuling <mikey@neuling.org>
Subject: Re: [PATCH v2 5/7] powerpc/85xx: Add MChk handler for SRIO port
Date: Thu, 05 Aug 2010 13:34:20 +1000
Lines: 50
Message-ID: <26581.1280979260@neuling.org>
References: <20100308191005.GE4324@amak.tundra.com> <AANLkTine3pc2Ai2Woj81Y9fS_KgGs1sIMb2NMR6G74ww@mail.gmail.com> <AANLkTinKbimKyLpvFD7KOvavshu_n8gRcp2BvEJj0XZQ@mail.gmail.com> <4381.1280815590@neuling.org> <0CE8B6BE3C4AD74AB97D9D29BD24E5520114309D@CORPEXCH1.na.ads.idt.com> <AANLkTinpwYnyc1oN1VbtBgUF6bk6E5q_Gq1Dj3WXV3wc@mail.gmail.com> <0CE8B6BE3C4AD74AB97D9D29BD24E552011430BC@CORPEXCH1.na.ads.idt.com>
Cc: "Timur Tabi" <timur@freescale.com>,
"Alexandre Bounine" <abounine@tundra.com>,
linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
thomas.moll@sysgo.com, "Kumar Gala" <galak@kernel.crashing.org>
To: "Bounine, Alexandre" <Alexandre.Bounine@idt.com>
X-From: linux-kernel-owner@vger.kernel.org Thu Aug 05 05:34:37 2010
Return-path: <linux-kernel-owner@vger.kernel.org>
Envelope-to: glk-linux-kernel-3@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-kernel-owner@vger.kernel.org>)
id 1OgrE1-00024O-Bh
for glk-linux-kernel-3@lo.gmane.org; Thu, 05 Aug 2010 05:34:33 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1758775Ab0HEDeX (ORCPT <rfc822;glk-linux-kernel-3@m.gmane.org>);
Wed, 4 Aug 2010 23:34:23 -0400
Received: from ozlabs.org ([203.10.76.45]:40810 "EHLO ozlabs.org"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1758704Ab0HEDeV (ORCPT <rfc822;linux-kernel@vger.kernel.org>);
Wed, 4 Aug 2010 23:34:21 -0400
Received: from localhost.localdomain (localhost [127.0.0.1])
by ozlabs.org (Postfix) with ESMTP id 97995B70D8;
Thu, 5 Aug 2010 13:34:20 +1000 (EST)
Received: by localhost.localdomain (Postfix, from userid 1000)
id 456CDCC199; Thu, 5 Aug 2010 13:34:20 +1000 (EST)
Received: from neuling.org (localhost [127.0.0.1])
by localhost.localdomain (Postfix) with ESMTP id 404C8C6123;
Thu, 5 Aug 2010 13:34:20 +1000 (EST)
In-reply-to: <0CE8B6BE3C4AD74AB97D9D29BD24E552011430BC@CORPEXCH1.na.ads.idt.com>
Comments: In-reply-to "Bounine, Alexandre" <Alexandre.Bounine@idt.com>
message dated "Tue, 03 Aug 2010 06:24:47 -0700."
X-Mailer: MH-E 8.2; nmh 1.3; GNU Emacs 23.1.1
Sender: linux-kernel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-kernel.vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1019004>
In message <0CE8B6BE3C4AD74AB97D9D29BD24E552011430BC@CORPEXCH1.na.ads.idt.com> you wrote:
> Yang Li pointed to these patches in his post from July 23, 2010.
> It would be nice to have these patches in mainline code.=20
This is still broken in Kumar's latest tree. Do you guys wanna repost
them so Kumar can pick them up easily?
Mikey
>
> > -----Original Message-----
> > From: timur.tabi@gmail.com [mailto:timur.tabi@gmail.com] On Behalf Of
> Timur Tabi
> > Sent: Tuesday, August 03, 2010 9:02 AM
> > To: Bounine, Alexandre
> > Cc: Michael Neuling; Alexandre Bounine; linuxppc-dev@lists.ozlabs.org;
> linux-kernel@vger.kernel.org;
> > thomas.moll@sysgo.com; Kumar Gala
> > Subject: Re: [PATCH v2 5/7] powerpc/85xx: Add MChk handler for SRIO
> port
> >=20
> > On Tue, Aug 3, 2010 at 7:17 AM, Bounine, Alexandre
> > <Alexandre.Bounine@idt.com> wrote:
> > > This happened after change to book-e definitions.
> > > There are patches that address this issue.
> >=20
> > And those patches should have been applied before 2.6.35 was released.
> > Someone dropped the ball. 2.6.35 is broken for a number of PowerPC
> > boards:
> >=20
> > $ make mpc85xx_defconfig
> > ....
> > $ make
> > ....
> > CC arch/powerpc/sysdev/fsl_rio.o
> > arch/powerpc/sysdev/fsl_rio.c: In function 'fsl_rio_mcheck_exception':
> > arch/powerpc/sysdev/fsl_rio.c:248: error: 'MCSR_MASK' undeclared
> > (first use in this function)
> > arch/powerpc/sysdev/fsl_rio.c:248: error: (Each undeclared identifier
> > is reported only once
> > arch/powerpc/sysdev/fsl_rio.c:248: error: for each function it appears
> in.)
> > make[1]: *** [arch/powerpc/sysdev/fsl_rio.o] Error 1
> >=20
> > --
> > Timur Tabi
> > Linux kernel developer at Freescale
>

View file

@ -0,0 +1,170 @@
From: "Bounine, Alexandre" <Alexandre.Bounine@idt.com>
Subject: RE: [PATCH v2 5/7] powerpc/85xx: Add MChk handler for SRIO port
Date: Thu, 5 Aug 2010 10:25:18 -0700
Lines: 99
Message-ID: <0CE8B6BE3C4AD74AB97D9D29BD24E552011935BD@CORPEXCH1.na.ads.idt.com>
References: <20100308191005.GE4324@amak.tundra.com>
<AANLkTine3pc2Ai2Woj81Y9fS_KgGs1sIMb2NMR6G74ww@mail.gmail.com>
<AANLkTinKbimKyLpvFD7KOvavshu_n8gRcp2BvEJj0XZQ@mail.gmail.com>
<4381.1280815590@neuling.org>
<0CE8B6BE3C4AD74AB97D9D29BD24E5520114309D@CORPEXCH1.na.ads.idt.com>
<AANLkTinpwYnyc1oN1VbtBgUF6bk6E5q_Gq1Dj3WXV3wc@mail.gmail.com>
<0CE8B6BE3C4AD74AB97D9D29BD24E552011430BC@CORPEXCH1.na.ads.idt.com>
<26581.1280979260@neuling.org>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Cc: Li Yang-R58472 <r58472@freescale.com>, linux-kernel@vger.kernel.org,
Alexandre Bounine <abounine@tundra.com>, thomas.moll@sysgo.com,
linuxppc-dev@lists.ozlabs.org, Timur Tabi <timur@freescale.com>
To: "Michael Neuling" <mikey@neuling.org>
X-From: linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org Thu Aug 05 19:25:54 2010
Return-path: <linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org>
Envelope-to: glppe-linuxppc-embedded-2@m.gmane.org
Received: from ozlabs.org ([203.10.76.45])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org>)
id 1Oh4CX-0002Xd-Hu
for glppe-linuxppc-embedded-2@m.gmane.org; Thu, 05 Aug 2010 19:25:54 +0200
Received: from bilbo.ozlabs.org (localhost [127.0.0.1])
by ozlabs.org (Postfix) with ESMTP id ED044100873
for <glppe-linuxppc-embedded-2@m.gmane.org>; Fri, 6 Aug 2010 03:25:45 +1000 (EST)
Received: from mxout1.idt.com (mxout1.idt.com [157.165.5.25])
(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
(Client CN "mxout1.idt.com", Issuer "idt.com" (not verified))
by ozlabs.org (Postfix) with ESMTPS id 43F72B6EEA
for <linuxppc-dev@lists.ozlabs.org>;
Fri, 6 Aug 2010 03:25:34 +1000 (EST)
Received: from mail.idt.com (localhost [127.0.0.1])
by mxout1.idt.com (8.13.1/8.13.1) with ESMTP id o75HPQdX013269;
Thu, 5 Aug 2010 10:25:26 -0700
Received: from corpml1.corp.idt.com (corpml1.corp.idt.com [157.165.140.20])
by mail.idt.com (8.13.8/8.13.8) with ESMTP id o75HPMOi016437;
Thu, 5 Aug 2010 10:25:23 -0700 (PDT)
Received: from CORPEXCH1.na.ads.idt.com (localhost [127.0.0.1])
by corpml1.corp.idt.com (8.11.7p1+Sun/8.11.7) with ESMTP id
o75HPKp19185; Thu, 5 Aug 2010 10:25:21 -0700 (PDT)
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
In-Reply-To: <26581.1280979260@neuling.org>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Topic: [PATCH v2 5/7] powerpc/85xx: Add MChk handler for SRIO port
Thread-Index: Acs0TsVj0+lZKwxtSsOT8qDn1XxpJAAdBmhA
X-Scanned-By: MIMEDefang 2.43
X-BeenThere: linuxppc-dev@lists.ozlabs.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Linux on PowerPC Developers Mail List <linuxppc-dev.lists.ozlabs.org>
List-Unsubscribe: <https://lists.ozlabs.org/options/linuxppc-dev>,
<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=unsubscribe>
List-Archive: <http://lists.ozlabs.org/pipermail/linuxppc-dev>
List-Post: <mailto:linuxppc-dev@lists.ozlabs.org>
List-Help: <mailto:linuxppc-dev-request@lists.ozlabs.org?subject=help>
List-Subscribe: <https://lists.ozlabs.org/listinfo/linuxppc-dev>,
<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=subscribe>
Sender: linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org
Errors-To: linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1019383>
Below is a copy of Leo's message with pointers to the patches.
Alex.
>Subject: [PATCH] RapidIO,powerpc/85xx: remove MCSR_MASK in fsl_rio
>
>Fixes compile problem caused by MCSR_MASK removal from book-E
definitions.
Hi Alex,
Only with your patch, there will still be problem on SRIO platforms
other than MPC85xx.
I have posted a patch series to fix this together with several
compatibility issues a month before.
http://patchwork.ozlabs.org/patch/56135/
http://patchwork.ozlabs.org/patch/56136/
http://patchwork.ozlabs.org/patch/56138/
http://patchwork.ozlabs.org/patch/56137/
Can anyone pick the patch series quickly as currently there is a compile
error when SRIO is enabled.
- Leo
> -----Original Message-----
> From: Michael Neuling [mailto:mikey@neuling.org]
> Sent: Wednesday, August 04, 2010 11:34 PM
> To: Bounine, Alexandre
> Cc: Timur Tabi; Alexandre Bounine; linuxppc-dev@lists.ozlabs.org;
linux-kernel@vger.kernel.org;
> thomas.moll@sysgo.com; Kumar Gala
> Subject: Re: [PATCH v2 5/7] powerpc/85xx: Add MChk handler for SRIO
port
>
>
>
> In message
<0CE8B6BE3C4AD74AB97D9D29BD24E552011430BC@CORPEXCH1.na.ads.idt.com> you
wrote:
> > Yang Li pointed to these patches in his post from July 23, 2010.
> > It would be nice to have these patches in mainline code.=20
>
> This is still broken in Kumar's latest tree. Do you guys wanna repost
> them so Kumar can pick them up easily?
>
> Mikey
>
> >
> > > -----Original Message-----
> > > From: timur.tabi@gmail.com [mailto:timur.tabi@gmail.com] On Behalf
Of
> > Timur Tabi
> > > Sent: Tuesday, August 03, 2010 9:02 AM
> > > To: Bounine, Alexandre
> > > Cc: Michael Neuling; Alexandre Bounine;
linuxppc-dev@lists.ozlabs.org;
> > linux-kernel@vger.kernel.org;
> > > thomas.moll@sysgo.com; Kumar Gala
> > > Subject: Re: [PATCH v2 5/7] powerpc/85xx: Add MChk handler for
SRIO
> > port
> > >=20
> > > On Tue, Aug 3, 2010 at 7:17 AM, Bounine, Alexandre
> > > <Alexandre.Bounine@idt.com> wrote:
> > > > This happened after change to book-e definitions.
> > > > There are patches that address this issue.
> > >=20
> > > And those patches should have been applied before 2.6.35 was
released.
> > > Someone dropped the ball. 2.6.35 is broken for a number of
PowerPC
> > > boards:
> > >=20
> > > $ make mpc85xx_defconfig
> > > ....
> > > $ make
> > > ....
> > > CC arch/powerpc/sysdev/fsl_rio.o
> > > arch/powerpc/sysdev/fsl_rio.c: In function
'fsl_rio_mcheck_exception':
> > > arch/powerpc/sysdev/fsl_rio.c:248: error: 'MCSR_MASK' undeclared
> > > (first use in this function)
> > > arch/powerpc/sysdev/fsl_rio.c:248: error: (Each undeclared
identifier
> > > is reported only once
> > > arch/powerpc/sysdev/fsl_rio.c:248: error: for each function it
appears
> > in.)
> > > make[1]: *** [arch/powerpc/sysdev/fsl_rio.o] Error 1
> > >=20
> > > --
> > > Timur Tabi
> > > Linux kernel developer at Freescale
> >

View file

@ -0,0 +1,95 @@
From: Kumar Gala <galak@kernel.crashing.org>
Subject: Re: [PATCH v2 5/7] powerpc/85xx: Add MChk handler for SRIO port
Date: Thu, 5 Aug 2010 12:53:03 -0500
Lines: 34
Message-ID: <C9528078-D64C-4944-B960-0E985B3EE0BA@kernel.crashing.org>
References: <20100308191005.GE4324@amak.tundra.com>
<AANLkTine3pc2Ai2Woj81Y9fS_KgGs1sIMb2NMR6G74ww@mail.gmail.com>
<AANLkTinKbimKyLpvFD7KOvavshu_n8gRcp2BvEJj0XZQ@mail.gmail.com>
<4381.1280815590@neuling.org>
<0CE8B6BE3C4AD74AB97D9D29BD24E5520114309D@CORPEXCH1.na.ads.idt.com>
<AANLkTinpwYnyc1oN1VbtBgUF6bk6E5q_Gq1Dj3WXV3wc@mail.gmail.com>
<0CE8B6BE3C4AD74AB97D9D29BD24E552011430BC@CORPEXCH1.na.ads.idt.com>
<26581.1280979260@neuling.org>
<0CE8B6BE3C4AD74AB97D9D29BD24E552011935BD@CORPEXCH1.na.ads.idt.com>
Mime-Version: 1.0 (Apple Message framework v1081)
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Cc: Michael Neuling <mikey@neuling.org>, Li Yang-R58472 <r58472@freescale.com>,
linux-kernel@vger.kernel.org,
Alexandre Bounine <abounine@tundra.com>, thomas.moll@sysgo.com,
linuxppc-dev@lists.ozlabs.org, Timur Tabi <timur@freescale.com>
To: "Bounine, Alexandre" <Alexandre.Bounine@IDT.COM>
X-From: linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org Thu Aug 05 19:53:49 2010
Return-path: <linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org>
Envelope-to: glppe-linuxppc-embedded-2@m.gmane.org
Received: from ozlabs.org ([203.10.76.45])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org>)
id 1Oh4dY-0000mU-OI
for glppe-linuxppc-embedded-2@m.gmane.org; Thu, 05 Aug 2010 19:53:49 +0200
Received: from bilbo.ozlabs.org (localhost [127.0.0.1])
by ozlabs.org (Postfix) with ESMTP id C0974B71BD
for <glppe-linuxppc-embedded-2@m.gmane.org>; Fri, 6 Aug 2010 03:53:41 +1000 (EST)
Received: from gate.crashing.org (gate.crashing.org [63.228.1.57])
(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
(Client did not present a certificate)
by ozlabs.org (Postfix) with ESMTPS id 707ADB6EF1
for <linuxppc-dev@lists.ozlabs.org>;
Fri, 6 Aug 2010 03:53:31 +1000 (EST)
Received: from [IPv6:::1] (localhost.localdomain [127.0.0.1])
by gate.crashing.org (8.14.1/8.13.8) with ESMTP id o75Hr4pE020296;
Thu, 5 Aug 2010 12:53:05 -0500
In-Reply-To: <0CE8B6BE3C4AD74AB97D9D29BD24E552011935BD@CORPEXCH1.na.ads.idt.com>
X-Mailer: Apple Mail (2.1081)
X-BeenThere: linuxppc-dev@lists.ozlabs.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Linux on PowerPC Developers Mail List <linuxppc-dev.lists.ozlabs.org>
List-Unsubscribe: <https://lists.ozlabs.org/options/linuxppc-dev>,
<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=unsubscribe>
List-Archive: <http://lists.ozlabs.org/pipermail/linuxppc-dev>
List-Post: <mailto:linuxppc-dev@lists.ozlabs.org>
List-Help: <mailto:linuxppc-dev-request@lists.ozlabs.org?subject=help>
List-Subscribe: <https://lists.ozlabs.org/listinfo/linuxppc-dev>,
<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=subscribe>
Sender: linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org
Errors-To: linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1019393>
On Aug 5, 2010, at 12:25 PM, Bounine, Alexandre wrote:
> Below is a copy of Leo's message with pointers to the patches.
>
> Alex.
>
>> Subject: [PATCH] RapidIO,powerpc/85xx: remove MCSR_MASK in fsl_rio
>>
>> Fixes compile problem caused by MCSR_MASK removal from book-E
> definitions.
>
> Hi Alex,
>
> Only with your patch, there will still be problem on SRIO platforms
> other than MPC85xx.
>
> I have posted a patch series to fix this together with several
> compatibility issues a month before.
>
> http://patchwork.ozlabs.org/patch/56135/
> http://patchwork.ozlabs.org/patch/56136/
> http://patchwork.ozlabs.org/patch/56138/
> http://patchwork.ozlabs.org/patch/56137/
>
>
> Can anyone pick the patch series quickly as currently there is a compile
> error when SRIO is enabled.
>
> - Leo
I'm looking at this now and wondering what we added the mcheck handler for in the first place and what its trying to accomplish.
- k

View file

@ -0,0 +1,75 @@
From: "Bounine, Alexandre" <Alexandre.Bounine@idt.com>
Subject: RE: [PATCH v2 5/7] powerpc/85xx: Add MChk handler for SRIO port
Date: Thu, 5 Aug 2010 11:17:58 -0700
Lines: 18
Message-ID: <0CE8B6BE3C4AD74AB97D9D29BD24E55201193609@CORPEXCH1.na.ads.idt.com>
References: <20100308191005.GE4324@amak.tundra.com> <AANLkTine3pc2Ai2Woj81Y9fS_KgGs1sIMb2NMR6G74ww@mail.gmail.com> <AANLkTinKbimKyLpvFD7KOvavshu_n8gRcp2BvEJj0XZQ@mail.gmail.com> <4381.1280815590@neuling.org> <0CE8B6BE3C4AD74AB97D9D29BD24E5520114309D@CORPEXCH1.na.ads.idt.com> <AANLkTinpwYnyc1oN1VbtBgUF6bk6E5q_Gq1Dj3WXV3wc@mail.gmail.com> <0CE8B6BE3C4AD74AB97D9D29BD24E552011430BC@CORPEXCH1.na.ads.idt.com> <26581.1280979260@neuling.org> <0CE8B6BE3C4AD74AB97D9D29BD24E552011935BD@CORPEXCH1.na.ads.idt.com> <C9528078-D64C-4944-B960-0E985B3EE0BA@kernel.crashing.org>
Mime-Version: 1.0
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: 8BIT
Cc: "Michael Neuling" <mikey@neuling.org>,
"Timur Tabi" <timur@freescale.com>,
"Alexandre Bounine" <abounine@tundra.com>,
<linuxppc-dev@lists.ozlabs.org>, <linux-kernel@vger.kernel.org>,
<thomas.moll@sysgo.com>, "Li Yang-R58472" <r58472@freescale.com>
To: "Kumar Gala" <galak@kernel.crashing.org>
X-From: linux-kernel-owner@vger.kernel.org Thu Aug 05 20:18:33 2010
Return-path: <linux-kernel-owner@vger.kernel.org>
Envelope-to: glk-linux-kernel-3@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-kernel-owner@vger.kernel.org>)
id 1Oh51V-00075S-1W
for glk-linux-kernel-3@lo.gmane.org; Thu, 05 Aug 2010 20:18:33 +0200
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S934019Ab0HESSU (ORCPT <rfc822;glk-linux-kernel-3@m.gmane.org>);
Thu, 5 Aug 2010 14:18:20 -0400
Received: from mxout1.idt.com ([157.165.5.25]:47318 "EHLO mxout1.idt.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S933252Ab0HESSS convert rfc822-to-8bit (ORCPT
<rfc822;linux-kernel@vger.kernel.org>);
Thu, 5 Aug 2010 14:18:18 -0400
Received: from mail.idt.com (localhost [127.0.0.1])
by mxout1.idt.com (8.13.1/8.13.1) with ESMTP id o75II315017058;
Thu, 5 Aug 2010 11:18:03 -0700
Received: from corpml1.corp.idt.com (corpml1.corp.idt.com [157.165.140.20])
by mail.idt.com (8.13.8/8.13.8) with ESMTP id o75II1Ek021771;
Thu, 5 Aug 2010 11:18:01 -0700 (PDT)
Received: from CORPEXCH1.na.ads.idt.com (localhost [127.0.0.1])
by corpml1.corp.idt.com (8.11.7p1+Sun/8.11.7) with ESMTP id o75II0M19896;
Thu, 5 Aug 2010 11:18:00 -0700 (PDT)
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
In-Reply-To: <C9528078-D64C-4944-B960-0E985B3EE0BA@kernel.crashing.org>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Topic: [PATCH v2 5/7] powerpc/85xx: Add MChk handler for SRIO port
Thread-Index: Acs0x5rSJ4s7P9ssRjKYVWxFQe3GMgAARQEw
X-Scanned-By: MIMEDefang 2.43
Sender: linux-kernel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-kernel.vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1019404>
> I'm looking at this now and wondering what we added the mcheck handler
for in the first place and what
> its trying to accomplish.
>
> - k
This protects system from hanging if RIO link fails or enters error
state. In some situations following maintenance read may initiate link
recovery from error state.
As it is now, MCheck mostly prevents system from hanging, but it also
adds sense to return status of maintenance read routine. I am using
return status in my new set of patches to check if RIO link is valid
during error recovery.
Alex.

View file

@ -0,0 +1,208 @@
From: Joe Perches <joe@perches.com>
Subject: [PATCH 00/44] remove unnecessary semicolons
Date: Sun, 14 Nov 2010 19:04:19 -0800
Lines: 158
Message-ID: <cover.1289789604.git.joe@perches.com>
Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
linux-tegra@vger.kernel.org, microblaze-uclinux@itee.uq.edu.au,
user-mode-linux-devel@lists.sourceforge.net,
user-mode-linux-user@lists.sourceforge.net,
cpufreq@vger.kernel.org, linux-i2c@vger.kernel.org,
netdev@vger.kernel.org, linux-media@vger.kernel.org,
linux-mmc@vger.kernel.org, e1000-devel@lists.sourceforge.net,
linux-wireless@vger.kernel.org, ath9k-devel@lists.ath9k.org,
platform-driver-x86@vger.kernel.org,
ibm-acpi-devel@lists.sourceforge.net, linux-s390@vger.kernel.org,
linux-scsi@vger.kernel.org,
spi-devel-general@lists.sourceforge.net,
devel@driverdev.osuosl.org, linux-usb@vger.kernel.org,
xen-devel@lists.xensource.com, virtualization@lists.osdl.org,
v9fs-developer@lists.sourceforge.net, ceph-devel@vger.kernel.org,
logfs@logfs.org, linux-nfs@vger.kernel.org,
ocfs2-devel@oss.oracle.com, linu
To: Jiri Kosina <trivial@kernel.org>
X-From: cpufreq-owner@vger.kernel.org Mon Nov 15 04:05:30 2010
Return-path: <cpufreq-owner@vger.kernel.org>
Envelope-to: glkc-cpufreq2@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <cpufreq-owner@vger.kernel.org>)
id 1PHpNp-0000PT-Vh
for glkc-cpufreq2@lo.gmane.org; Mon, 15 Nov 2010 04:05:30 +0100
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1754566Ab0KODF2 (ORCPT <rfc822;glkc-cpufreq2@m.gmane.org>);
Sun, 14 Nov 2010 22:05:28 -0500
Received: from mail.perches.com ([173.55.12.10]:1118 "EHLO mail.perches.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1751901Ab0KODF1 (ORCPT <rfc822;cpufreq@vger.kernel.org>);
Sun, 14 Nov 2010 22:05:27 -0500
Received: from Joe-Laptop.home (unknown [192.168.1.162])
by mail.perches.com (Postfix) with ESMTP id 0D82A24368;
Sun, 14 Nov 2010 19:03:52 -0800 (PST)
X-Mailer: git-send-email 1.7.3.1.g432b3.dirty
Sender: cpufreq-owner@vger.kernel.org
Precedence: bulk
List-ID: <cpufreq.vger.kernel.org>
X-Mailing-List: cpufreq@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1062272>
ya trivial series...
Joe Perches (44):
arch/arm: Remove unnecessary semicolons
arch/microblaze: Remove unnecessary semicolons
arch/um: Remove unnecessary semicolons
drivers/cpufreq: Remove unnecessary semicolons
drivers/gpio: Remove unnecessary semicolons
drivers/i2c: Remove unnecessary semicolons
drivers/isdn: Remove unnecessary semicolons
drivers/leds: Remove unnecessary semicolons
drivers/media/video: Remove unnecessary semicolons
drivers/misc: Remove unnecessary semicolons
drivers/mmc: Remove unnecessary semicolons
drivers/net/bnx2x: Remove unnecessary semicolons
drivers/net/e1000e: Remove unnecessary semicolons
drivers/net/ixgbe: Remove unnecessary semicolons
drivers/net/vxge: Remove unnecessary semicolons
drivers/net/wireless/ath: Remove unnecessary semicolons
drivers/net/wireless/iwlwifi: Remove unnecessary semicolons
drivers/net/cnic.c: Remove unnecessary semicolons
drivers/platform/x86: Remove unnecessary semicolons
drivers/power: Remove unnecessary semicolons
drivers/s390/net: Remove unnecessary semicolons
drivers/scsi/be2iscsi: Remove unnecessary semicolons
drivers/scsi/bfa: Remove unnecessary semicolons
drivers/scsi/lpfc: Remove unnecessary semicolons
drivers/scsi/pm8001: Remove unnecessary semicolons
drivers/scsi/qla2xxx: Remove unnecessary semicolons
drivers/serial: Remove unnecessary semicolons
drivers/spi: Remove unnecessary semicolons
drivers/staging: Remove unnecessary semicolons
drivers/usb/gadget: Remove unnecessary semicolons
drivers/xen: Remove unnecessary semicolons
fs/9p: Remove unnecessary semicolons
fs/ceph: Remove unnecessary semicolons
fs/logfs: Remove unnecessary semicolons
fs/nfs: Remove unnecessary semicolons
fs/ocfs2: Remove unnecessary semicolons
fs/ubifs: Remove unnecessary semicolons
include/linux/if_macvlan.h: Remove unnecessary semicolons
include/net/caif/cfctrl.h: Remove unnecessary semicolons
mm/hugetlb.c: Remove unnecessary semicolons
net/ipv6/mcast.c: Remove unnecessary semicolons
net/sunrpc/addr.c: Remove unnecessary semicolons
sound/core/pcm_lib.c: Remove unnecessary semicolons
sound/soc/codecs: Remove unnecessary semicolons
arch/arm/mach-at91/at91cap9_devices.c | 2 +-
arch/arm/mach-at91/at91sam9g45_devices.c | 2 +-
arch/arm/mach-at91/at91sam9rl_devices.c | 2 +-
arch/arm/mach-nuc93x/time.c | 2 +-
arch/arm/mach-tegra/tegra2_clocks.c | 2 +-
arch/arm/mach-w90x900/cpu.c | 2 +-
arch/arm/plat-mxc/irq.c | 2 +-
arch/microblaze/lib/memmove.c | 2 +-
arch/um/drivers/mmapper_kern.c | 2 +-
drivers/cpufreq/cpufreq_conservative.c | 2 +-
drivers/gpio/langwell_gpio.c | 2 +-
drivers/i2c/busses/i2c-designware.c | 2 +-
drivers/isdn/hardware/mISDN/mISDNinfineon.c | 4 ++--
drivers/isdn/hardware/mISDN/mISDNisar.c | 2 +-
drivers/leds/leds-mc13783.c | 2 +-
drivers/media/video/cx88/cx88-blackbird.c | 2 +-
drivers/media/video/davinci/vpfe_capture.c | 2 +-
drivers/media/video/em28xx/em28xx-cards.c | 2 +-
drivers/misc/bmp085.c | 2 +-
drivers/misc/isl29020.c | 2 +-
drivers/mmc/host/davinci_mmc.c | 2 +-
drivers/net/bnx2x/bnx2x_link.c | 4 ++--
drivers/net/bnx2x/bnx2x_main.c | 2 +-
drivers/net/cnic.c | 2 +-
drivers/net/e1000e/netdev.c | 2 +-
drivers/net/ixgbe/ixgbe_sriov.c | 2 +-
drivers/net/vxge/vxge-main.c | 2 +-
drivers/net/wireless/ath/ath9k/htc.h | 2 +-
drivers/net/wireless/iwlwifi/iwl-agn.c | 2 +-
drivers/platform/x86/classmate-laptop.c | 2 +-
drivers/platform/x86/thinkpad_acpi.c | 2 +-
drivers/power/intel_mid_battery.c | 2 +-
drivers/s390/net/qeth_core_sys.c | 2 +-
drivers/scsi/be2iscsi/be_main.c | 4 ++--
drivers/scsi/bfa/bfa_fcs_lport.c | 2 +-
drivers/scsi/lpfc/lpfc_bsg.c | 2 +-
drivers/scsi/pm8001/pm8001_init.c | 2 +-
drivers/scsi/qla2xxx/qla_isr.c | 4 ++--
drivers/scsi/qla2xxx/qla_nx.c | 2 +-
drivers/serial/mrst_max3110.c | 2 +-
drivers/spi/amba-pl022.c | 2 +-
drivers/spi/spi_nuc900.c | 2 +-
.../staging/ath6kl/hif/sdio/linux_sdio/src/hif.c | 2 +-
drivers/staging/ath6kl/os/linux/ar6000_drv.c | 2 +-
drivers/staging/bcm/InterfaceInit.c | 2 +-
drivers/staging/bcm/InterfaceIsr.c | 2 +-
drivers/staging/bcm/Misc.c | 4 ++--
.../comedi/drivers/addi-data/APCI1710_Tor.c | 2 +-
.../comedi/drivers/addi-data/hwdrv_apci1500.c | 2 +-
.../comedi/drivers/addi-data/hwdrv_apci1516.c | 2 +-
.../comedi/drivers/addi-data/hwdrv_apci3501.c | 2 +-
drivers/staging/comedi/drivers/amplc_pci230.c | 2 +-
drivers/staging/comedi/drivers/cb_das16_cs.c | 2 +-
drivers/staging/comedi/drivers/comedi_bond.c | 2 +-
drivers/staging/crystalhd/crystalhd_hw.c | 2 +-
drivers/staging/go7007/go7007-driver.c | 2 +-
drivers/staging/iio/accel/lis3l02dq_ring.c | 2 +-
.../staging/intel_sst/intel_sst_drv_interface.c | 4 ++--
drivers/staging/keucr/smilmain.c | 4 ++--
drivers/staging/keucr/smilsub.c | 4 ++--
drivers/staging/msm/lcdc_toshiba_wvga_pt.c | 2 +-
drivers/staging/rt2860/common/cmm_data_pci.c | 4 ++--
drivers/staging/rt2860/rt_linux.c | 2 +-
drivers/staging/rt2860/rtmp.h | 2 +-
drivers/staging/rtl8192e/ieee80211/ieee80211_tx.c | 2 +-
drivers/staging/rtl8192e/r819xE_phy.c | 2 +-
drivers/staging/rtl8192u/ieee80211/ieee80211_tx.c | 2 +-
drivers/staging/rtl8192u/r8192U_core.c | 2 +-
drivers/staging/rtl8192u/r819xU_phy.c | 2 +-
drivers/staging/rtl8712/rtl8712_efuse.c | 2 +-
drivers/staging/rtl8712/rtl8712_xmit.c | 2 +-
drivers/staging/rtl8712/rtl871x_xmit.c | 2 +-
drivers/staging/tidspbridge/core/tiomap3430.c | 4 ++--
drivers/staging/tidspbridge/rmgr/nldr.c | 2 +-
drivers/staging/vt6655/card.c | 2 +-
drivers/staging/vt6655/iwctl.c | 2 +-
drivers/staging/vt6655/wpa2.c | 4 ++--
drivers/staging/vt6656/baseband.c | 2 +-
drivers/staging/vt6656/iwctl.c | 2 +-
drivers/staging/vt6656/power.c | 2 +-
drivers/staging/vt6656/wpa2.c | 4 ++--
drivers/usb/gadget/f_fs.c | 2 +-
drivers/xen/swiotlb-xen.c | 2 +-
fs/9p/acl.c | 2 +-
fs/9p/xattr.c | 2 +-
fs/ceph/mds_client.c | 2 +-
fs/logfs/readwrite.c | 2 +-
fs/nfs/getroot.c | 2 +-
fs/ocfs2/refcounttree.c | 2 +-
fs/ubifs/scan.c | 2 +-
include/linux/if_macvlan.h | 2 +-
include/net/caif/cfctrl.h | 2 +-
mm/hugetlb.c | 2 +-
net/ipv6/mcast.c | 2 +-
net/sunrpc/addr.c | 2 +-
sound/core/pcm_lib.c | 2 +-
sound/soc/codecs/wm8904.c | 2 +-
sound/soc/codecs/wm8940.c | 1 -
sound/soc/codecs/wm8993.c | 2 +-
sound/soc/codecs/wm_hubs.c | 2 +-
100 files changed, 111 insertions(+), 112 deletions(-)
--
1.7.3.1.g432b3.dirty
--
To unsubscribe from this list: send the line "unsubscribe cpufreq" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

View file

@ -0,0 +1,100 @@
From: Joe Perches <joe@perches.com>
Subject: [PATCH 13/44] drivers/net/e1000e: Remove unnecessary
semicolons
Date: Sun, 14 Nov 2010 19:04:32 -0800
Lines: 34
Message-ID: <e5cf92d50de7924930d660a5865c3d60d9cd9dc5.1289789604.git.joe@perches.com>
References: <cover.1289789604.git.joe@perches.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Cc: e1000-devel@lists.sourceforge.net, Bruce Allan <bruce.w.allan@intel.com>,
Jesse Brandeburg <jesse.brandeburg@intel.com>,
linux-kernel@vger.kernel.org, Greg Rose <gregory.v.rose@intel.com>,
John Ronciak <john.ronciak@intel.com>,
Jeff Kirsher <jeffrey.t.kirsher@intel.com>, netdev@vger.kernel.org
To: Jiri Kosina <trivial@kernel.org>
X-From: e1000-devel-bounces@lists.sourceforge.net Mon Nov 15 04:05:53 2010
Return-path: <e1000-devel-bounces@lists.sourceforge.net>
Envelope-to: glded-e1000-devel@m.gmane.org
Received: from lists.sourceforge.net ([216.34.181.88])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <e1000-devel-bounces@lists.sourceforge.net>)
id 1PHpOD-0000a9-4r
for glded-e1000-devel@m.gmane.org; Mon, 15 Nov 2010 04:05:53 +0100
Received: from localhost ([127.0.0.1] helo=sfs-ml-4.v29.ch3.sourceforge.com)
by sfs-ml-4.v29.ch3.sourceforge.com with esmtp (Exim 4.69)
(envelope-from <e1000-devel-bounces@lists.sourceforge.net>)
id 1PHpO5-0002a8-SR; Mon, 15 Nov 2010 03:05:45 +0000
Received: from sog-mx-2.v43.ch3.sourceforge.com ([172.29.43.192]
helo=mx.sourceforge.net)
by sfs-ml-4.v29.ch3.sourceforge.com with esmtp (Exim 4.69)
(envelope-from <joe@perches.com>) id 1PHpO5-0002Zz-D2
for e1000-devel@lists.sourceforge.net; Mon, 15 Nov 2010 03:05:45 +0000
X-ACL-Warn:
Received: from mail.perches.com ([173.55.12.10])
by sog-mx-2.v43.ch3.sourceforge.com with esmtp (Exim 4.69)
id 1PHpO1-0002b4-4y
for e1000-devel@lists.sourceforge.net; Mon, 15 Nov 2010 03:05:45 +0000
Received: from Joe-Laptop.home (unknown [192.168.1.162])
by mail.perches.com (Postfix) with ESMTP id 462EB24376;
Sun, 14 Nov 2010 19:04:03 -0800 (PST)
X-Mailer: git-send-email 1.7.3.1.g432b3.dirty
In-Reply-To: <cover.1289789604.git.joe@perches.com>
X-Spam-Score: 0.1 (/)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
See http://spamassassin.org/tag/ for more details.
-0.0 T_RP_MATCHES_RCVD Envelope sender domain matches handover relay
domain 0.1 AWL AWL: From: address is in the auto white-list
X-Headers-End: 1PHpO1-0002b4-4y
X-BeenThere: e1000-devel@lists.sourceforge.net
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: "e100/e1000\(e\)/ixgb/igb/ixgbe development and discussion"
<e1000-devel.lists.sourceforge.net>
List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/e1000-devel>,
<mailto:e1000-devel-request@lists.sourceforge.net?subject=unsubscribe>
List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=e1000-devel>
List-Post: <mailto:e1000-devel@lists.sourceforge.net>
List-Help: <mailto:e1000-devel-request@lists.sourceforge.net?subject=help>
List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/e1000-devel>,
<mailto:e1000-devel-request@lists.sourceforge.net?subject=subscribe>
Errors-To: e1000-devel-bounces@lists.sourceforge.net
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1062273>
Signed-off-by: Joe Perches <joe@perches.com>
---
drivers/net/e1000e/netdev.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
index c4ca162..a6d54e4 100644
--- a/drivers/net/e1000e/netdev.c
+++ b/drivers/net/e1000e/netdev.c
@@ -4595,7 +4595,7 @@ dma_error:
i += tx_ring->count;
i--;
buffer_info = &tx_ring->buffer_info[i];
- e1000_put_txbuf(adapter, buffer_info);;
+ e1000_put_txbuf(adapter, buffer_info);
}
return 0;
--
1.7.3.1.g432b3.dirty
------------------------------------------------------------------------------
Centralized Desktop Delivery: Dell and VMware Reference Architecture
Simplifying enterprise desktop deployment and management using
Dell EqualLogic storage and VMware View: A highly scalable, end-to-end
client virtualization framework. Read more!
http://p.sf.net/sfu/dell-eql-dev2dev
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel&#174; Ethernet, visit http://communities.intel.com/community/wired

View file

@ -0,0 +1,100 @@
From: Joe Perches <joe@perches.com>
Subject: [PATCH 14/44] drivers/net/ixgbe: Remove unnecessary
semicolons
Date: Sun, 14 Nov 2010 19:04:33 -0800
Lines: 34
Message-ID: <7d2c334daa75c5221946a17d45c9de1901cf06e7.1289789604.git.joe@perches.com>
References: <cover.1289789604.git.joe@perches.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Cc: e1000-devel@lists.sourceforge.net, Bruce Allan <bruce.w.allan@intel.com>,
Jesse Brandeburg <jesse.brandeburg@intel.com>,
linux-kernel@vger.kernel.org, Greg Rose <gregory.v.rose@intel.com>,
John Ronciak <john.ronciak@intel.com>,
Jeff Kirsher <jeffrey.t.kirsher@intel.com>, netdev@vger.kernel.org
To: Jiri Kosina <trivial@kernel.org>
X-From: e1000-devel-bounces@lists.sourceforge.net Mon Nov 15 04:05:55 2010
Return-path: <e1000-devel-bounces@lists.sourceforge.net>
Envelope-to: glded-e1000-devel@m.gmane.org
Received: from lists.sourceforge.net ([216.34.181.88])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <e1000-devel-bounces@lists.sourceforge.net>)
id 1PHpOE-0000bY-KU
for glded-e1000-devel@m.gmane.org; Mon, 15 Nov 2010 04:05:54 +0100
Received: from localhost ([127.0.0.1] helo=sfs-ml-2.v29.ch3.sourceforge.com)
by sfs-ml-2.v29.ch3.sourceforge.com with esmtp (Exim 4.69)
(envelope-from <e1000-devel-bounces@lists.sourceforge.net>)
id 1PHpO6-0004H7-Hr; Mon, 15 Nov 2010 03:05:46 +0000
Received: from sog-mx-4.v43.ch3.sourceforge.com ([172.29.43.194]
helo=mx.sourceforge.net)
by sfs-ml-2.v29.ch3.sourceforge.com with esmtp (Exim 4.69)
(envelope-from <joe@perches.com>) id 1PHpO6-0004H2-2t
for e1000-devel@lists.sourceforge.net; Mon, 15 Nov 2010 03:05:46 +0000
X-ACL-Warn:
Received: from mail.perches.com ([173.55.12.10])
by sog-mx-4.v43.ch3.sourceforge.com with esmtp (Exim 4.69)
id 1PHpO1-0006jE-SS
for e1000-devel@lists.sourceforge.net; Mon, 15 Nov 2010 03:05:46 +0000
Received: from Joe-Laptop.home (unknown [192.168.1.162])
by mail.perches.com (Postfix) with ESMTP id 0D6062436F;
Sun, 14 Nov 2010 19:04:04 -0800 (PST)
X-Mailer: git-send-email 1.7.3.1.g432b3.dirty
In-Reply-To: <cover.1289789604.git.joe@perches.com>
X-Spam-Score: 0.1 (/)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
See http://spamassassin.org/tag/ for more details.
-0.0 T_RP_MATCHES_RCVD Envelope sender domain matches handover relay
domain 0.1 AWL AWL: From: address is in the auto white-list
X-Headers-End: 1PHpO1-0006jE-SS
X-BeenThere: e1000-devel@lists.sourceforge.net
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: "e100/e1000\(e\)/ixgb/igb/ixgbe development and discussion"
<e1000-devel.lists.sourceforge.net>
List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/e1000-devel>,
<mailto:e1000-devel-request@lists.sourceforge.net?subject=unsubscribe>
List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=e1000-devel>
List-Post: <mailto:e1000-devel@lists.sourceforge.net>
List-Help: <mailto:e1000-devel-request@lists.sourceforge.net?subject=help>
List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/e1000-devel>,
<mailto:e1000-devel-request@lists.sourceforge.net?subject=subscribe>
Errors-To: e1000-devel-bounces@lists.sourceforge.net
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1062274>
Signed-off-by: Joe Perches <joe@perches.com>
---
drivers/net/ixgbe/ixgbe_sriov.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/net/ixgbe/ixgbe_sriov.c b/drivers/net/ixgbe/ixgbe_sriov.c
index 5428153..93f40bc 100644
--- a/drivers/net/ixgbe/ixgbe_sriov.c
+++ b/drivers/net/ixgbe/ixgbe_sriov.c
@@ -68,7 +68,7 @@ static int ixgbe_set_vf_multicasts(struct ixgbe_adapter *adapter,
* addresses
*/
for (i = 0; i < entries; i++) {
- vfinfo->vf_mc_hashes[i] = hash_list[i];;
+ vfinfo->vf_mc_hashes[i] = hash_list[i];
}
for (i = 0; i < vfinfo->num_vf_mc_hashes; i++) {
--
1.7.3.1.g432b3.dirty
------------------------------------------------------------------------------
Centralized Desktop Delivery: Dell and VMware Reference Architecture
Simplifying enterprise desktop deployment and management using
Dell EqualLogic storage and VMware View: A highly scalable, end-to-end
client virtualization framework. Read more!
http://p.sf.net/sfu/dell-eql-dev2dev
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel&#174; Ethernet, visit http://communities.intel.com/community/wired

View file

@ -0,0 +1,89 @@
From: Joe Perches <joe@perches.com>
Subject: [uml-user] [PATCH 03/44] arch/um: Remove unnecessary semicolons
Date: Sun, 14 Nov 2010 19:04:22 -0800
Lines: 28
Message-ID: <9ab60a1761dde357ebc028c525dae7572e072588.1289789604.git.joe@perches.com>
References: <cover.1289789604.git.joe@perches.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Cc: Jeff Dike <jdike@addtoit.com>, user-mode-linux-user@lists.sourceforge.net,
user-mode-linux-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org
To: Jiri Kosina <trivial@kernel.org>
X-From: user-mode-linux-user-bounces@lists.sourceforge.net Mon Nov 15 04:06:03 2010
Return-path: <user-mode-linux-user-bounces@lists.sourceforge.net>
Envelope-to: gluu-user-mode-linux-user-592@gmane.org
Received: from lists.sourceforge.net ([216.34.181.88])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <user-mode-linux-user-bounces@lists.sourceforge.net>)
id 1PHpOM-0000er-Jl
for gluu-user-mode-linux-user-592@gmane.org; Mon, 15 Nov 2010 04:06:02 +0100
Received: from localhost ([127.0.0.1] helo=sfs-ml-4.v29.ch3.sourceforge.com)
by sfs-ml-4.v29.ch3.sourceforge.com with esmtp (Exim 4.69)
(envelope-from <user-mode-linux-user-bounces@lists.sourceforge.net>)
id 1PHpNz-0002ZS-PM; Mon, 15 Nov 2010 03:05:39 +0000
Received: from sog-mx-2.v43.ch3.sourceforge.com ([172.29.43.192]
helo=mx.sourceforge.net)
by sfs-ml-4.v29.ch3.sourceforge.com with esmtp (Exim 4.69)
(envelope-from <joe@perches.com>)
id 1PHpNy-0002ZA-Q9; Mon, 15 Nov 2010 03:05:38 +0000
X-ACL-Warn:
Received: from mail.perches.com ([173.55.12.10])
by sog-mx-2.v43.ch3.sourceforge.com with esmtp (Exim 4.69)
id 1PHpNu-0002aj-Ks; Mon, 15 Nov 2010 03:05:38 +0000
Received: from Joe-Laptop.home (unknown [192.168.1.162])
by mail.perches.com (Postfix) with ESMTP id 845BB2436D;
Sun, 14 Nov 2010 19:03:56 -0800 (PST)
X-Mailer: git-send-email 1.7.3.1.g432b3.dirty
In-Reply-To: <cover.1289789604.git.joe@perches.com>
X-Spam-Score: 0.1 (/)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
See http://spamassassin.org/tag/ for more details.
-0.0 T_RP_MATCHES_RCVD Envelope sender domain matches handover relay
domain 0.1 AWL AWL: From: address is in the auto white-list
X-Headers-End: 1PHpNu-0002aj-Ks
X-BeenThere: user-mode-linux-user@lists.sourceforge.net
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The user-mode Linux user list
<user-mode-linux-user.lists.sourceforge.net>
List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/user-mode-linux-user>,
<mailto:user-mode-linux-user-request@lists.sourceforge.net?subject=unsubscribe>
List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=user-mode-linux-user>
List-Post: <mailto:user-mode-linux-user@lists.sourceforge.net>
List-Help: <mailto:user-mode-linux-user-request@lists.sourceforge.net?subject=help>
List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/user-mode-linux-user>,
<mailto:user-mode-linux-user-request@lists.sourceforge.net?subject=subscribe>
Errors-To: user-mode-linux-user-bounces@lists.sourceforge.net
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1062275>
Signed-off-by: Joe Perches <joe@perches.com>
---
arch/um/drivers/mmapper_kern.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/um/drivers/mmapper_kern.c b/arch/um/drivers/mmapper_kern.c
index 8501e7d..6256fa9 100644
--- a/arch/um/drivers/mmapper_kern.c
+++ b/arch/um/drivers/mmapper_kern.c
@@ -122,7 +122,7 @@ static int __init mmapper_init(void)
if (err) {
printk(KERN_ERR "mmapper - misc_register failed, err = %d\n",
err);
- return err;;
+ return err;
}
return 0;
}
--
1.7.3.1.g432b3.dirty
------------------------------------------------------------------------------
Centralized Desktop Delivery: Dell and VMware Reference Architecture
Simplifying enterprise desktop deployment and management using
Dell EqualLogic storage and VMware View: A highly scalable, end-to-end
client virtualization framework. Read more!
http://p.sf.net/sfu/dell-eql-dev2dev

View file

@ -0,0 +1,81 @@
From: Joe Perches <joe@perches.com>
Subject: [PATCH 40/44] mm/hugetlb.c: Remove unnecessary semicolons
Date: Sun, 14 Nov 2010 19:04:59 -0800
Lines: 28
Message-ID: <59705f848d35b12ace640f92afcffea02cee0976.1289789605.git.joe@perches.com>
References: <cover.1289789604.git.joe@perches.com>
Cc: linux-mm@kvack.org,
linux-kernel@vger.kernel.org
To: Jiri Kosina <trivial@kernel.org>
X-From: owner-linux-mm@kvack.org Mon Nov 15 04:06:05 2010
Return-path: <owner-linux-mm@kvack.org>
Envelope-to: glkm-linux-mm-2@m.gmane.org
Received: from kanga.kvack.org ([205.233.56.17])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <owner-linux-mm@kvack.org>)
id 1PHpOO-0000gl-5U
for glkm-linux-mm-2@m.gmane.org; Mon, 15 Nov 2010 04:06:04 +0100
Received: by kanga.kvack.org (Postfix)
id 6220A8D003C; Sun, 14 Nov 2010 22:06:03 -0500 (EST)
Delivered-To: linux-mm-outgoing@kvack.org
Received: by kanga.kvack.org (Postfix, from userid 40)
id 5D2638D0017; Sun, 14 Nov 2010 22:06:03 -0500 (EST)
X-Original-To: int-list-linux-mm@kvack.org
Delivered-To: int-list-linux-mm@kvack.org
Received: by kanga.kvack.org (Postfix, from userid 63042)
id 427128D003C; Sun, 14 Nov 2010 22:06:03 -0500 (EST)
X-Original-To: linux-mm@kvack.org
Delivered-To: linux-mm@kvack.org
Received: from mail203.messagelabs.com (mail203.messagelabs.com [216.82.254.243])
by kanga.kvack.org (Postfix) with SMTP id C08B98D0017
for <linux-mm@kvack.org>; Sun, 14 Nov 2010 22:06:02 -0500 (EST)
X-VirusChecked: Checked
X-Env-Sender: joe@perches.com
X-Msg-Ref: server-4.tower-203.messagelabs.com!1289790361!41887937!1
X-StarScan-Version: 6.2.9; banners=-,-,-
X-Originating-IP: [173.55.12.10]
X-SpamReason: No, hits=0.0 required=7.0 tests=
Received: (qmail 4485 invoked from network); 15 Nov 2010 03:06:01 -0000
Received: from mail.perches.com (HELO mail.perches.com) (173.55.12.10)
by server-4.tower-203.messagelabs.com with SMTP; 15 Nov 2010 03:06:01 -0000
Received: from Joe-Laptop.home (unknown [192.168.1.162])
by mail.perches.com (Postfix) with ESMTP id EB70E2436B;
Sun, 14 Nov 2010 19:04:28 -0800 (PST)
X-Mailer: git-send-email 1.7.3.1.g432b3.dirty
In-Reply-To: <cover.1289789604.git.joe@perches.com>
X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.2
Sender: owner-linux-mm@kvack.org
Precedence: bulk
X-Loop: owner-majordomo@kvack.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1062276>
Signed-off-by: Joe Perches <joe@perches.com>
---
mm/hugetlb.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index c4a3558..8875242 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -540,7 +540,7 @@ static struct page *dequeue_huge_page_vma(struct hstate *h,
/* If reserves cannot be used, ensure enough pages are in the pool */
if (avoid_reserve && h->free_huge_pages - h->resv_huge_pages == 0)
- goto err;;
+ goto err;
for_each_zone_zonelist_nodemask(zone, z, zonelist,
MAX_NR_ZONES - 1, nodemask) {
--
1.7.3.1.g432b3.dirty
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom policy in Canada: sign http://dissolvethecrtc.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

View file

@ -0,0 +1,86 @@
From: Joe Perches <joe@perches.com>
Subject: [PATCH 31/44] drivers/xen: Remove unnecessary semicolons
Date: Sun, 14 Nov 2010 19:04:50 -0800
Lines: 20
Message-ID: <b3f95cd997859d5d714de322ce17810fe73460cd.1289789605.git.joe@perches.com>
References: <cover.1289789604.git.joe@perches.com>
Cc: virtualization@lists.osdl.org,
Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>,
xen-devel@lists.xensource.com, linux-kernel@vger.kernel.org,
Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Jiri Kosina <trivial@kernel.org>
X-From: xen-devel-bounces@lists.xensource.com Mon Nov 15 04:06:05 2010
Return-path: <xen-devel-bounces@lists.xensource.com>
Envelope-to: gcvxd-xen-devel@m.gmane.org
Received: from lists.colo.xensource.com ([70.42.241.110] helo=lists.xensource.com)
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <xen-devel-bounces@lists.xensource.com>)
id 1PHpON-0000fV-A9
for gcvxd-xen-devel@m.gmane.org; Mon, 15 Nov 2010 04:06:03 +0100
Received: from localhost ([127.0.0.1] helo=lists.colo.xensource.com)
by lists.xensource.com with esmtp (Exim 4.43)
id 1PHpOK-0008Sa-VZ; Sun, 14 Nov 2010 19:06:01 -0800
Received: from spam.xensource.com ([70.42.241.90])
by lists.xensource.com with esmtp (Exim 4.43) id 1PHpOG-0008R4-01
for xen-devel@lists.xensource.com; Sun, 14 Nov 2010 19:05:56 -0800
X-ASG-Debug-ID: 1289790355-0739cd1c0001-8pertM
Received: from mail.perches.com (mail.perches.com [173.55.12.10]) by
spam.xensource.com with ESMTP id XhkGr3VGEwXLx5vl for
<xen-devel@lists.xensource.com>;
Sun, 14 Nov 2010 19:05:55 -0800 (PST)
X-Barracuda-Envelope-From: joe@perches.com
X-Barracuda-Apparent-Source-IP: 173.55.12.10
Received: from Joe-Laptop.home (unknown [192.168.1.162])
by mail.perches.com (Postfix) with ESMTP id 044672436E;
Sun, 14 Nov 2010 19:04:23 -0800 (PST)
X-ASG-Orig-Subj: [PATCH 31/44] drivers/xen: Remove unnecessary semicolons
X-Mailer: git-send-email 1.7.3.1.g432b3.dirty
In-Reply-To: <cover.1289789604.git.joe@perches.com>
X-Barracuda-Connect: mail.perches.com[173.55.12.10]
X-Barracuda-Start-Time: 1289790355
X-Barracuda-URL: http://spam.xensource.com:8000/cgi-mod/mark.cgi
X-Virus-Scanned: by bsmtpd at xensource.com
X-Barracuda-Spam-Score: 0.00
X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=3.5
QUARANTINE_LEVEL=6.0 KILL_LEVEL=1000.0 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.46657
Rule breakdown below
pts rule name description
---- ----------------------
--------------------------------------------------
X-BeenThere: xen-devel@lists.xensource.com
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Xen developer discussion <xen-devel.lists.xensource.com>
List-Unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>,
<mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xensource.com>
List-Help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-Subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>,
<mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
Sender: xen-devel-bounces@lists.xensource.com
Errors-To: xen-devel-bounces@lists.xensource.com
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1062277>
Signed-off-by: Joe Perches <joe@perches.com>
---
drivers/xen/swiotlb-xen.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c
index 54469c3..65ea21a 100644
--- a/drivers/xen/swiotlb-xen.c
+++ b/drivers/xen/swiotlb-xen.c
@@ -54,7 +54,7 @@ u64 start_dma_addr;
static dma_addr_t xen_phys_to_bus(phys_addr_t paddr)
{
- return phys_to_machine(XPADDR(paddr)).maddr;;
+ return phys_to_machine(XPADDR(paddr)).maddr;
}
static phys_addr_t xen_bus_to_phys(dma_addr_t baddr)
--
1.7.3.1.g432b3.dirty

View file

@ -0,0 +1,58 @@
From: Joe Perches <joe@perches.com>
Subject: [PATCH 11/44] drivers/mmc: Remove unnecessary semicolons
Date: Sun, 14 Nov 2010 19:04:30 -0800
Lines: 21
Message-ID: <6391af02ba7ec4a76c5c5f462d8013fc1f52f999.1289789604.git.joe@perches.com>
References: <cover.1289789604.git.joe@perches.com>
Cc: Chris Ball <cjb@laptop.org>, linux-mmc@vger.kernel.org,
linux-kernel@vger.kernel.org
To: Jiri Kosina <trivial@kernel.org>
X-From: linux-kernel-owner@vger.kernel.org Mon Nov 15 04:06:20 2010
Return-path: <linux-kernel-owner@vger.kernel.org>
Envelope-to: glk-linux-kernel-3@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-kernel-owner@vger.kernel.org>)
id 1PHpOe-0000ny-CV
for glk-linux-kernel-3@lo.gmane.org; Mon, 15 Nov 2010 04:06:20 +0100
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S932688Ab0KODFg (ORCPT <rfc822;glk-linux-kernel-3@m.gmane.org>);
Sun, 14 Nov 2010 22:05:36 -0500
Received: from mail.perches.com ([173.55.12.10]:1153 "EHLO mail.perches.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S932652Ab0KODFe (ORCPT <rfc822;linux-kernel@vger.kernel.org>);
Sun, 14 Nov 2010 22:05:34 -0500
Received: from Joe-Laptop.home (unknown [192.168.1.162])
by mail.perches.com (Postfix) with ESMTP id DD07924374;
Sun, 14 Nov 2010 19:04:01 -0800 (PST)
X-Mailer: git-send-email 1.7.3.1.g432b3.dirty
In-Reply-To: <cover.1289789604.git.joe@perches.com>
Sender: linux-kernel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-kernel.vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1062278>
Signed-off-by: Joe Perches <joe@perches.com>
---
drivers/mmc/host/davinci_mmc.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/mmc/host/davinci_mmc.c b/drivers/mmc/host/davinci_mmc.c
index e15547c..b643dde 100644
--- a/drivers/mmc/host/davinci_mmc.c
+++ b/drivers/mmc/host/davinci_mmc.c
@@ -480,7 +480,7 @@ static void mmc_davinci_send_dma_request(struct mmc_davinci_host *host,
struct scatterlist *sg;
unsigned sg_len;
unsigned bytes_left = host->bytes_left;
- const unsigned shift = ffs(rw_threshold) - 1;;
+ const unsigned shift = ffs(rw_threshold) - 1;
if (host->data_dir == DAVINCI_MMC_DATADIR_WRITE) {
template = &host->tx_template;
--
1.7.3.1.g432b3.dirty

View file

@ -0,0 +1,57 @@
From: Joe Perches <joe@perches.com>
Subject: [PATCH 20/44] drivers/power: Remove unnecessary semicolons
Date: Sun, 14 Nov 2010 19:04:39 -0800
Lines: 21
Message-ID: <2f2ed8aa6745be23063fed55243313839d7ba523.1289789605.git.joe@perches.com>
References: <cover.1289789604.git.joe@perches.com>
Cc: linux-kernel@vger.kernel.org
To: Jiri Kosina <trivial@kernel.org>
X-From: linux-kernel-owner@vger.kernel.org Mon Nov 15 04:06:22 2010
Return-path: <linux-kernel-owner@vger.kernel.org>
Envelope-to: glk-linux-kernel-3@lo.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by lo.gmane.org with esmtp (Exim 4.69)
(envelope-from <linux-kernel-owner@vger.kernel.org>)
id 1PHpOe-0000ny-TB
for glk-linux-kernel-3@lo.gmane.org; Mon, 15 Nov 2010 04:06:21 +0100
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S932773Ab0KODFm (ORCPT <rfc822;glk-linux-kernel-3@m.gmane.org>);
Sun, 14 Nov 2010 22:05:42 -0500
Received: from mail.perches.com ([173.55.12.10]:1185 "EHLO mail.perches.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S932746Ab0KODFk (ORCPT <rfc822;linux-kernel@vger.kernel.org>);
Sun, 14 Nov 2010 22:05:40 -0500
Received: from Joe-Laptop.home (unknown [192.168.1.162])
by mail.perches.com (Postfix) with ESMTP id 3664A2436B;
Sun, 14 Nov 2010 19:04:08 -0800 (PST)
X-Mailer: git-send-email 1.7.3.1.g432b3.dirty
In-Reply-To: <cover.1289789604.git.joe@perches.com>
Sender: linux-kernel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-kernel.vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1062279>
Signed-off-by: Joe Perches <joe@perches.com>
---
drivers/power/intel_mid_battery.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/power/intel_mid_battery.c b/drivers/power/intel_mid_battery.c
index 2a10cd3..8397978 100644
--- a/drivers/power/intel_mid_battery.c
+++ b/drivers/power/intel_mid_battery.c
@@ -522,7 +522,7 @@ static int pmic_battery_set_charger(struct pmic_power_module_info *pbi,
if (retval) {
dev_warn(pbi->dev, "%s(): ipc pmic read failed\n",
__func__);
- return retval;;
+ return retval;
}
return 0;
--
1.7.3.1.g432b3.dirty

Some files were not shown because too many files have changed in this diff Show more