Update of /cvsroot/ssic-linux/openssi/kernel/include/cluster/ssi/cfs
In directory
sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9473/include/cluster/ssi/cfs
Modified Files:
cfsd.h cfs_fs.h cfs_fs_i.h cfs_page.h cfstok.h
Log Message:
More fixes to get the following files to compile (re-port read.c and write.c):
cluster/ssi/cfs/inode.c
cluster/ssi/cfs/file.c
cluster/ssi/cfs/read.c
cluster/ssi/cfs/write.c
cluster/ssi/cfs/dir.c
cluster/ssi/cfs/symlink.c
cluster/ssi/cfs/proc.c
cluster/ssi/cfs/cfsproc.c
cluster/ssi/cfs/cfsfh.c
Index: cfs_fs_i.h
===================================================================
RCS file:
/cvsroot/ssic-linux/openssi/kernel/include/cluster/ssi/cfs/cfs_fs_i.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- cfs_fs_i.h 21 Oct 2004 23:40:51 -0000 1.6
+++ cfs_fs_i.h 27 Oct 2004 04:33:13 -0000 1.7
@@ -94,7 +94,6 @@
/*
* This is the list of dirty unwritten pages.
*/
- struct list_head read;
struct list_head dirty;
struct list_head commit;
struct radix_tree_root cfs_page_tree;
Index: cfs_fs.h
===================================================================
RCS file: /cvsroot/ssic-linux/openssi/kernel/include/cluster/ssi/cfs/cfs_fs.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- cfs_fs.h 25 Oct 2004 21:51:38 -0000 1.6
+++ cfs_fs.h 27 Oct 2004 04:33:13 -0000 1.7
@@ -94,6 +94,8 @@
/* Inode Flags */
#define CFS_USE_READDIRPLUS(inode) ((CFS_FLAGS(inode) &
CFS_INO_ADVISE_RDPLUS) ? 1 : 0)
+#define CFS_FILEID(inode) (inode->i_sb->s_ssidev)
+
/*
* These are the default flags for swap requests
*/
@@ -190,56 +192,39 @@
* Try to write back everything synchronously (but check the
* return value!)
*/
-extern int cfs_sync_file(struct inode *, struct file *, unsigned long,
unsigned int, int);
-extern int cfs_flush_file(struct inode *, struct file *, unsigned long,
unsigned int, int);
+extern int cfs_sync_inode(struct inode *, unsigned long, unsigned int, int);
+extern int cfs_flush_inode(struct inode *, unsigned long, unsigned int, int);
extern int cfs_flush_list(struct list_head *, int, int);
-extern int cfs_scan_lru_dirty(struct cfs_server *, struct list_head *);
-extern int cfs_scan_lru_dirty_timeout(struct cfs_server *, struct list_head
*);
-extern int cfs_commit_file(struct inode *, struct file *, unsigned long,
unsigned int, int);
+extern int cfs_commit_inode(struct inode *, unsigned long, unsigned int, int);
extern int cfs_commit_list(struct list_head *, int);
-extern int cfs_scan_lru_commit(struct cfs_server *, struct list_head *);
-extern int cfs_scan_lru_commit_timeout(struct cfs_server *, struct list_head
*);
extern void cfs_sync_all_data(struct cfs_server *);
static inline int
-cfs_have_read(struct inode *inode)
-{
- return !list_empty(&itoc(inode)->read);
-}
-
-#ifdef SSI_XXX /* writeback doesn't exist */
-static inline int
cfs_have_writebacks(struct inode *inode)
{
- return !list_empty(&itoc(inode)->writeback);
+ return itoc(inode)->npages != 0;
}
-#endif
static inline int
cfs_wb_all(struct inode *inode)
{
- int error = cfs_sync_file(inode, 0, 0, 0, FLUSH_WAIT);
+ int error = cfs_sync_inode(inode, 0, 0, FLUSH_WAIT);
return (error < 0) ? error : 0;
}
/*
* Write back all requests on one page - we do this before reading it.
*/
-static inline int
-cfs_wb_page(struct inode *inode, struct page* page)
+static inline int cfs_wb_page_priority(struct inode *inode, struct page* page,
int how)
{
- int error = cfs_sync_file(inode, 0, page_index(page), 1, FLUSH_WAIT |
FLUSH_STABLE);
+ int error = cfs_sync_inode(inode, page->index, 1,
+ how | FLUSH_WAIT | FLUSH_STABLE);
return (error < 0) ? error : 0;
}
-/*
- * Write back all pending writes for one user..
- */
-static inline int
-cfs_wb_file(struct inode *inode, struct file *file)
+static inline int cfs_wb_page(struct inode *inode, struct page* page)
{
- int error = cfs_sync_file(inode, file, 0, 0, FLUSH_WAIT);
- return (error < 0) ? error : 0;
+ return cfs_wb_page_priority(inode, page, 0);
}
/*
@@ -340,12 +325,6 @@
void (*)(struct list_head *, void *), void *arg);
/*
- * cluster/ssi/cfs/flushd.c
- */
-void cfs_flushd_nodedown(struct cfs_server *);
-void cfs_flushd_restart(struct cfs_server *);
-
-/*
* cluster/ssi/cfs/pagelist.c
*/
struct cfs_page;
Index: cfs_page.h
===================================================================
RCS file:
/cvsroot/ssic-linux/openssi/kernel/include/cluster/ssi/cfs/cfs_page.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- cfs_page.h 20 Oct 2004 03:23:36 -0000 1.3
+++ cfs_page.h 27 Oct 2004 04:33:13 -0000 1.4
@@ -25,15 +25,15 @@
#define PG_DOWN 1
struct cfs_page {
- struct list_head wb_hash, /* Inode */
+ struct list_head wb_list, /* Defines state of page: */
wb_lru, /* superblock lru list */
- wb_list, /* Defines state of page: */
*wb_list_head; /* read/write/commit */
struct file *wb_file;
struct inode *wb_inode;
struct page *wb_page; /* page to read in/write out */
wait_queue_head_t wb_wait; /* wait queue */
unsigned long wb_timeout; /* when to read/write/commit */
+ unsigned long wb_index; /* Offset >> PAGE_CACHE_SHIFT */
unsigned int wb_offset, /* Offset of read/write */
wb_bytes, /* Length of request */
wb_count; /* reference count */
@@ -54,7 +54,7 @@
extern int cfs_scan_lru(struct list_head *, struct list_head *, int);
extern int cfs_scan_lru_timeout(struct list_head *, struct list_head *, int);
extern int cfs_scan_list(struct list_head *, struct list_head *,
- struct file *, unsigned long, unsigned int);
+ unsigned long, unsigned int);
extern int cfs_coalesce_requests(struct list_head *, struct list_head *,
unsigned int);
extern int cfs_wait_on_request(struct cfs_page *);
@@ -122,10 +122,10 @@
return list_entry(head, struct cfs_page, wb_list);
}
-static inline struct cfs_page *
-cfs_inode_wb_entry(struct list_head *head)
+static inline
+loff_t req_offset(struct cfs_page *req)
{
- return list_entry(head, struct cfs_page, wb_hash);
+ return (((loff_t)req->wb_index) << PAGE_CACHE_SHIFT) + req->wb_offset;
}
static inline void
Index: cfsd.h
===================================================================
RCS file: /cvsroot/ssic-linux/openssi/kernel/include/cluster/ssi/cfs/cfsd.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- cfsd.h 20 Oct 2004 03:23:36 -0000 1.3
+++ cfsd.h 27 Oct 2004 04:33:13 -0000 1.4
@@ -75,7 +75,7 @@
int cfsd_readdir(struct svrcfstok *,
loff_t, encode_dent_fn,
u32 *buffer, int *countp);
-int cfsd_statfs(struct super_block *, struct statfs *);
+int cfsd_statfs(struct super_block *, struct kstatfs *);
#ifdef NOTNEEDED
int cfsd_permission(struct svc_export *, struct dentry *, int);
Index: cfstok.h
===================================================================
RCS file: /cvsroot/ssic-linux/openssi/kernel/include/cluster/ssi/cfs/cfstok.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- cfstok.h 21 Oct 2004 23:40:51 -0000 1.5
+++ cfstok.h 27 Oct 2004 04:33:13 -0000 1.6
@@ -360,11 +360,7 @@
CONDITION_T sct_cond;
LOCK_T sct_tcblock;
RW_LOCK_T sct_objlock; /* lock for this file or directory */
- unsigned long sct_reada,
- sct_ramax,
- sct_raend,
- sct_ralen,
- sct_rawin;
+ struct file_ra_state sct_ra;
struct list_head sct_prlist;
};
typedef struct svrcfstok svrcfstok_t;
-------------------------------------------------------
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click
|