X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=test%2Fcorpora%2Flkml%2Fcur%2F1382298770.001733%3A2%2C;fp=test%2Fcorpora%2Flkml%2Fcur%2F1382298770.001733%3A2%2C;h=d782f90e9a249cce678f552e97f3440f1a945656;hb=e08f5f76e406de2c6bdcf85952aaeb66ec0d37de;hp=0000000000000000000000000000000000000000;hpb=ce8c88824ab91882ea50c761b930390953cf2c34;p=notmuch diff --git a/test/corpora/lkml/cur/1382298770.001733:2, b/test/corpora/lkml/cur/1382298770.001733:2, new file mode 100644 index 00000000..d782f90e --- /dev/null +++ b/test/corpora/lkml/cur/1382298770.001733:2, @@ -0,0 +1,211 @@ +From: Suresh Jayaraman +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: +Cc: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, + linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, David Howells +To: Steve French +X-From: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Tue Jun 22 17:43:52 2010 +Return-path: +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 ) + 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 ); + 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 + ); + 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: +Sender: linux-cifs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org +Precedence: bulk +List-ID: +X-Mailing-List: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org +Archived-At: + +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 +--- + 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 ++#include ++#include ++#include ++ ++#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 + #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 ++#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 + + +