Skip to content
Snippets Groups Projects
Commit 0d4dbdda authored by Yong Fan's avatar Yong Fan
Browse files

Branch HEAD

b=15927
i=johann
i=huanghua

replace ptlrpcd with the statahead thread to interpret the async statahead RPC callback.
parent 805392ae
No related branches found
No related tags found
No related merge requests found
......@@ -37,7 +37,7 @@
#include "llite_internal.h"
/* should NOT be called with the dcache lock, see fs/dcache.c */
static void ll_release(struct dentry *de)
void ll_release(struct dentry *de)
{
struct ll_dentry_data *lld;
ENTRY;
......
......@@ -666,6 +666,7 @@ int ll_extent_lock_cancel_cb(struct ldlm_lock *lock, struct ldlm_lock_desc *new,
extern struct dentry_operations ll_init_d_ops;
extern struct dentry_operations ll_d_ops;
extern struct dentry_operations ll_fini_d_ops;
void ll_release(struct dentry *de);
void ll_intent_drop_lock(struct lookup_intent *);
void ll_intent_release(struct lookup_intent *);
int ll_drop_dentry(struct dentry *dentry);
......@@ -910,6 +911,7 @@ void et_fini(struct eacl_table *et);
/* per inode struct, for dir only */
struct ll_statahead_info {
struct inode *sai_inode;
struct dentry *sai_first; /* first dentry item */
unsigned int sai_generation; /* generation for statahead */
atomic_t sai_refcount; /* when access this struct, hold
* refcount */
......@@ -918,6 +920,8 @@ struct ll_statahead_info {
* reply */
unsigned int sai_max; /* max ahead of lookup */
unsigned int sai_index; /* index of statahead entry */
unsigned int sai_index_next; /* index for the next statahead
* entry to be stated */
unsigned int sai_hit; /* hit count */
unsigned int sai_miss; /* miss count:
* for "ls -al" case, it includes
......@@ -935,11 +939,13 @@ struct ll_statahead_info {
* hidden entries */
cfs_waitq_t sai_waitq; /* stat-ahead wait queue */
struct ptlrpc_thread sai_thread; /* stat-ahead thread */
struct list_head sai_entries; /* stat-ahead entries */
struct list_head sai_entries_sent; /* entries sent out */
struct list_head sai_entries_received; /* entries returned */
struct list_head sai_entries_stated; /* entries stated */
};
int do_statahead_enter(struct inode *dir, struct dentry **dentry, int lookup);
void ll_statahead_exit(struct dentry *dentry, int result);
int ll_statahead_exit(struct dentry *dentry, int result);
void ll_stop_statahead(struct inode *inode, void *key);
static inline
......
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment