Commit e554fbff authored by Lai Siyao's avatar Lai Siyao Committed by Greg Kroah-Hartman
Browse files

staging: lustre: statahead: use dcache-like interface for sa entry



Rename ll_sa_entry to sa_entry, and manage sa_entry cache with
dcache-like interfaces.

sa_entry is not needed to be refcounted, because only scanner
can free it, so after it's put in stat list, statahead thread
shouldn't access it any longer.

ll_statahead_interpret() doesn't need to take sai refcount,
because statahead thread will wait for all inflight RPC to
finish.

Signed-off-by: default avatarLai Siyao <lai.siyao@intel.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-3270
Reviewed-on: http://review.whamcloud.com/9664


Reviewed-by: default avatarJames Simmons <uja.ornl@gmail.com>
Reviewed-by: default avatarFan Yong <fan.yong@intel.com>
Reviewed-by: default avatarOleg Drokin <oleg.drokin@intel.com>
Signed-off-by: default avatarJames Simmons <jsimmons@infradead.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent dbf789ce
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -812,7 +812,7 @@ struct md_enqueue_info {
	struct inode	   *mi_dir;
	int (*mi_cb)(struct ptlrpc_request *req,
		     struct md_enqueue_info *minfo, int rc);
	__u64		   mi_cbdata;
	void			*mi_cbdata;
};

struct obd_ops {
+6 −4
Original line number Diff line number Diff line
@@ -1131,10 +1131,12 @@ struct ll_statahead_info {
	wait_queue_head_t	sai_waitq;      /* stat-ahead wait queue */
	struct ptlrpc_thread    sai_thread;     /* stat-ahead thread */
	struct ptlrpc_thread    sai_agl_thread; /* AGL thread */
	struct list_head	sai_entries;    /* entry list */
	struct list_head	sai_entries_received; /* entries returned */
	struct list_head	sai_entries_stated;   /* entries stated */
	struct list_head	sai_entries_agl; /* AGL entries to be sent */
	struct list_head	sai_interim_entries; /* entries which got async
						      * stat reply, but not
						      * instantiated
						      */
	struct list_head	sai_entries;	/* completed entries */
	struct list_head	sai_agls;	/* AGLs to be sent */
	struct list_head	sai_cache[LL_SA_CACHE_SIZE];
	spinlock_t		sai_cache_lock[LL_SA_CACHE_SIZE];
	atomic_t		sai_cache_count; /* entry count in cache */
+200 −261

File changed.

Preview size limit exceeded, changes collapsed.