aboutsummaryrefslogtreecommitdiffstats
path: root/fs/gfs2/quota.h
diff options
context:
space:
mode:
authorSteven Whitehouse <swhiteho@redhat.com>2013-11-04 05:15:08 -0500
committerSteven Whitehouse <swhiteho@redhat.com>2013-11-04 06:17:49 -0500
commit2147dbfd059eb7fefcfd5934f74f25f0693d4a1f (patch)
tree8cc89a827bcc48f529698bef65eb61216562425a /fs/gfs2/quota.h
parent7d80823e1d83e35977d77ae201bf63af3317ad0a (diff)
GFS2: Use generic list_lru for quota
By using the generic list_lru code, we can now separate the per sb quota list locking from the lru locking. The lru lock is made into the inner-most lock. As a result of this new lock order, we may occasionally see items on the per-sb quota list which are "dead" so that the two places where we traverse that list are updated to take account of that. As a result of this patch, the gfs2 quota shrinker is now NUMA zone aware, and we are also laying the foundations for further improvments in due course. Signed-off-by: Steven Whitehouse <swhiteho@redhat.com> Signed-off-by: Abhijith Das <adas@redhat.com> Tested-by: Abhijith Das <adas@redhat.com> Cc: Dave Chinner <dchinner@redhat.com>
Diffstat (limited to 'fs/gfs2/quota.h')
-rw-r--r--fs/gfs2/quota.h9
1 files changed, 4 insertions, 5 deletions
diff --git a/fs/gfs2/quota.h b/fs/gfs2/quota.h
index 0f64d9deb1b0..96e4f34a03b0 100644
--- a/fs/gfs2/quota.h
+++ b/fs/gfs2/quota.h
@@ -10,9 +10,10 @@
10#ifndef __QUOTA_DOT_H__ 10#ifndef __QUOTA_DOT_H__
11#define __QUOTA_DOT_H__ 11#define __QUOTA_DOT_H__
12 12
13#include <linux/list_lru.h>
14
13struct gfs2_inode; 15struct gfs2_inode;
14struct gfs2_sbd; 16struct gfs2_sbd;
15struct shrink_control;
16 17
17#define NO_UID_QUOTA_CHANGE INVALID_UID 18#define NO_UID_QUOTA_CHANGE INVALID_UID
18#define NO_GID_QUOTA_CHANGE INVALID_GID 19#define NO_GID_QUOTA_CHANGE INVALID_GID
@@ -53,10 +54,8 @@ static inline int gfs2_quota_lock_check(struct gfs2_inode *ip)
53 return ret; 54 return ret;
54} 55}
55 56
56extern unsigned long gfs2_qd_shrink_count(struct shrinker *shrink,
57 struct shrink_control *sc);
58extern unsigned long gfs2_qd_shrink_scan(struct shrinker *shrink,
59 struct shrink_control *sc);
60extern const struct quotactl_ops gfs2_quotactl_ops; 57extern const struct quotactl_ops gfs2_quotactl_ops;
58extern struct shrinker gfs2_qd_shrinker;
59extern struct list_lru gfs2_qd_lru;
61 60
62#endif /* __QUOTA_DOT_H__ */ 61#endif /* __QUOTA_DOT_H__ */