summaryrefslogtreecommitdiffstats
path: root/xlators/performance/quick-read/src/quick-read.h
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/performance/quick-read/src/quick-read.h')
-rw-r--r--xlators/performance/quick-read/src/quick-read.h81
1 files changed, 41 insertions, 40 deletions
diff --git a/xlators/performance/quick-read/src/quick-read.h b/xlators/performance/quick-read/src/quick-read.h
index 57a7e4d46..6f0a05417 100644
--- a/xlators/performance/quick-read/src/quick-read.h
+++ b/xlators/performance/quick-read/src/quick-read.h
@@ -1,20 +1,11 @@
/*
- Copyright (c) 2009-2010 Gluster, Inc. <http://www.gluster.com>
+ Copyright (c) 2008-2012 Red Hat, Inc. <http://www.redhat.com>
This file is part of GlusterFS.
- GlusterFS is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published
- by the Free Software Foundation; either version 3 of the License,
- or (at your option) any later version.
-
- GlusterFS 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
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see
- <http://www.gnu.org/licenses/>.
+ This file is licensed to you under your choice of the GNU Lesser
+ General Public License, version 3 or any later version (LGPLv3 or
+ later), or the GNU General Public License, version 2 (GPLv2), in all
+ cases as published by the Free Software Foundation.
*/
#ifndef __QUICK_READ_H
@@ -40,41 +31,51 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
+#include <fnmatch.h>
+#include "quick-read-mem-types.h"
-#define GLUSTERFS_CONTENT_KEY "glusterfs.content"
-struct qr_fd_ctx {
- char opened;
- char open_in_transit;
- char *path;
- int flags;
- struct list_head waiting_ops;
- gf_lock_t lock;
+struct qr_inode {
+ void *data;
+ size_t size;
+ int priority;
+ uint32_t ia_mtime;
+ uint32_t ia_mtime_nsec;
+ struct iatt buf;
+ struct timeval last_refresh;
+ struct list_head lru;
};
-typedef struct qr_fd_ctx qr_fd_ctx_t;
+typedef struct qr_inode qr_inode_t;
-struct qr_local {
- char is_open;
- fd_t *fd;
- int open_flags;
- int32_t op_ret;
- int32_t op_errno;
- call_stub_t *stub;
-};
-typedef struct qr_local qr_local_t;
-struct qr_file {
- dict_t *xattr;
- struct stat stbuf;
- struct timeval tv;
- gf_lock_t lock;
+struct qr_priority {
+ char *pattern;
+ int32_t priority;
+ struct list_head list;
};
-typedef struct qr_file qr_file_t;
+typedef struct qr_priority qr_priority_t;
struct qr_conf {
- uint64_t max_file_size;
- int32_t cache_timeout;
+ uint64_t max_file_size;
+ int32_t cache_timeout;
+ uint64_t cache_size;
+ int max_pri;
+ struct list_head priority_list;
};
typedef struct qr_conf qr_conf_t;
+struct qr_inode_table {
+ uint64_t cache_used;
+ struct list_head *lru;
+ gf_lock_t lock;
+};
+typedef struct qr_inode_table qr_inode_table_t;
+
+struct qr_private {
+ qr_conf_t conf;
+ qr_inode_table_t table;
+};
+typedef struct qr_private qr_private_t;
+
+
#endif /* #ifndef __QUICK_READ_H */