Lines Matching refs:need
204 struct ceph_cap_reservation *ctx, int need) in ceph_reserve_caps() argument
217 doutc(cl, "ctx=%p need=%d\n", ctx, need); in ceph_reserve_caps()
221 if (mdsc->caps_avail_count >= need) in ceph_reserve_caps()
222 have = need; in ceph_reserve_caps()
232 for (i = have; i < need; ) { in ceph_reserve_caps()
249 max_caps = s->s_nr_caps - (need - i); in ceph_reserve_caps()
261 if (mdsc->caps_avail_count >= need - i) in ceph_reserve_caps()
262 more_have = need - i; in ceph_reserve_caps()
277 pr_warn_client(cl, "ctx=%p ENOMEM need=%d got=%d\n", ctx, need, in ceph_reserve_caps()
284 BUG_ON(have + alloc != need); in ceph_reserve_caps()
285 ctx->count = need; in ceph_reserve_caps()
2813 static int try_get_cap_refs(struct inode *inode, int need, int want, in try_get_cap_refs() argument
2824 ceph_vinop(inode), ceph_cap_string(need), in try_get_cap_refs()
2851 if (have & need & CEPH_CAP_FILE_WR) { in try_get_cap_refs()
2870 if ((have & need) == need) { in try_get_cap_refs()
2880 int not = want & ~(have & need); in try_get_cap_refs()
2889 (need & CEPH_CAP_FILE_WR)) { in try_get_cap_refs()
2908 *got = need | (want & ~exclude); in try_get_cap_refs()
2910 *got = need; in try_get_cap_refs()
2918 (need & (CEPH_CAP_FILE_WR | CEPH_CAP_FILE_EXCL))) { in try_get_cap_refs()
2926 inode, ceph_vinop(inode), ceph_cap_string(need), in try_get_cap_refs()
2939 if (need & ~mds_wanted) { in try_get_cap_refs()
2941 inode, ceph_vinop(inode), ceph_cap_string(need), in try_get_cap_refs()
2949 ceph_cap_string(need)); in try_get_cap_refs()
3008 int ceph_try_get_caps(struct inode *inode, int need, int want, in ceph_try_get_caps() argument
3013 BUG_ON(need & ~CEPH_CAP_FILE_RD); in ceph_try_get_caps()
3017 if (need) { in ceph_try_get_caps()
3018 ret = ceph_pool_perm_check(inode, need); in ceph_try_get_caps()
3023 flags = get_used_fmode(need | want); in ceph_try_get_caps()
3027 ret = try_get_cap_refs(inode, need, want, 0, flags, got); in ceph_try_get_caps()
3039 int __ceph_get_caps(struct inode *inode, struct ceph_file_info *fi, int need, in __ceph_get_caps() argument
3046 ret = ceph_pool_perm_check(inode, need); in __ceph_get_caps()
3054 flags = get_used_fmode(need | want); in __ceph_get_caps()
3061 ret = try_get_cap_refs(inode, need, want, endoff, in __ceph_get_caps()
3074 cw.need = need; in __ceph_get_caps()
3087 while (!(ret = try_get_cap_refs(inode, need, want, in __ceph_get_caps()
3172 int ceph_get_caps(struct file *filp, int need, int want, loff_t endoff, in ceph_get_caps() argument
3178 return __ceph_get_caps(inode, fi, need, want, endoff, got); in ceph_get_caps()