mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-24 03:48:10 +01:00
e08f5f76e4
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.
103 lines
4.4 KiB
Text
103 lines
4.4 KiB
Text
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(+)
|
|
|
|
|
|
|