Lines Matching refs:object
20 struct cachefiles_object *object = file->private_data; in cachefiles_ondemand_fd_release() local
27 if (!object) in cachefiles_ondemand_fd_release()
30 info = object->ondemand; in cachefiles_ondemand_fd_release()
31 cache = object->volume->cache; in cachefiles_ondemand_fd_release()
38 cachefiles_ondemand_set_object_close(object); in cachefiles_ondemand_fd_release()
52 trace_cachefiles_ondemand_fd_release(object, object_id); in cachefiles_ondemand_fd_release()
53 cachefiles_put_object(object, cachefiles_obj_put_ondemand_fd); in cachefiles_ondemand_fd_release()
61 struct cachefiles_object *object = kiocb->ki_filp->private_data; in cachefiles_ondemand_fd_write_iter() local
62 struct cachefiles_cache *cache = object->volume->cache; in cachefiles_ondemand_fd_write_iter()
69 spin_lock(&object->lock); in cachefiles_ondemand_fd_write_iter()
70 file = object->file; in cachefiles_ondemand_fd_write_iter()
72 spin_unlock(&object->lock); in cachefiles_ondemand_fd_write_iter()
76 spin_unlock(&object->lock); in cachefiles_ondemand_fd_write_iter()
79 ret = __cachefiles_prepare_write(object, file, &pos, &aligned_len, len, true); in cachefiles_ondemand_fd_write_iter()
84 trace_cachefiles_ondemand_fd_write(object, file_inode(file), pos, len); in cachefiles_ondemand_fd_write_iter()
85 ret = __cachefiles_write(object, file, pos, iter, NULL, NULL); in cachefiles_ondemand_fd_write_iter()
97 struct cachefiles_object *object = filp->private_data; in cachefiles_ondemand_fd_llseek() local
101 spin_lock(&object->lock); in cachefiles_ondemand_fd_llseek()
102 file = object->file; in cachefiles_ondemand_fd_llseek()
104 spin_unlock(&object->lock); in cachefiles_ondemand_fd_llseek()
108 spin_unlock(&object->lock); in cachefiles_ondemand_fd_llseek()
119 struct cachefiles_object *object = filp->private_data; in cachefiles_ondemand_fd_ioctl() local
120 struct cachefiles_cache *cache = object->volume->cache; in cachefiles_ondemand_fd_ioctl()
133 req->object != object) { in cachefiles_ondemand_fd_ioctl()
140 trace_cachefiles_ondemand_cread(object, id); in cachefiles_ondemand_fd_ioctl()
195 !req->object->ondemand->ondemand_id) { in cachefiles_ondemand_copen()
202 info = req->object->ondemand; in cachefiles_ondemand_copen()
248 cookie = req->object->cookie; in cachefiles_ondemand_copen()
254 trace_cachefiles_ondemand_copen(req->object, id, size); in cachefiles_ondemand_copen()
256 cachefiles_ondemand_set_object_open(req->object); in cachefiles_ondemand_copen()
264 cachefiles_ondemand_set_object_close(req->object); in cachefiles_ondemand_copen()
296 struct cachefiles_object *object; in cachefiles_ondemand_get_fd() local
302 object = cachefiles_grab_object(req->object, in cachefiles_ondemand_get_fd()
304 cache = object->volume->cache; in cachefiles_ondemand_get_fd()
319 &cachefiles_ondemand_fd_fops, object, in cachefiles_ondemand_get_fd()
326 spin_lock(&object->ondemand->lock); in cachefiles_ondemand_get_fd()
327 if (object->ondemand->ondemand_id > 0) { in cachefiles_ondemand_get_fd()
328 spin_unlock(&object->ondemand->lock); in cachefiles_ondemand_get_fd()
337 object->ondemand->ondemand_id = object_id; in cachefiles_ondemand_get_fd()
338 spin_unlock(&object->ondemand->lock); in cachefiles_ondemand_get_fd()
341 trace_cachefiles_ondemand_open(object, &req->msg, load); in cachefiles_ondemand_get_fd()
353 spin_lock(&object->ondemand->lock); in cachefiles_ondemand_get_fd()
355 if (object->ondemand->ondemand_id <= 0) in cachefiles_ondemand_get_fd()
356 cachefiles_ondemand_set_object_close(object); in cachefiles_ondemand_get_fd()
357 spin_unlock(&object->ondemand->lock); in cachefiles_ondemand_get_fd()
358 cachefiles_put_object(object, cachefiles_obj_put_ondemand_fd); in cachefiles_ondemand_get_fd()
367 cachefiles_ondemand_init_object(info->object); in ondemand_object_worker()
379 struct cachefiles_object *object; in cachefiles_ondemand_select_req() local
385 object = req->object; in cachefiles_ondemand_select_req()
386 info = object->ondemand; in cachefiles_ondemand_select_req()
387 if (cachefiles_ondemand_object_is_close(object)) { in cachefiles_ondemand_select_req()
388 cachefiles_ondemand_set_object_reopening(object); in cachefiles_ondemand_select_req()
392 if (cachefiles_ondemand_object_is_reopening(object)) in cachefiles_ondemand_select_req()
450 cachefiles_grab_object(req->object, cachefiles_obj_get_read_req); in cachefiles_ondemand_daemon_read()
460 msg->object_id = req->object->ondemand->ondemand_id; in cachefiles_ondemand_daemon_read()
474 cachefiles_put_object(req->object, cachefiles_obj_put_read_req); in cachefiles_ondemand_daemon_read()
484 static int cachefiles_ondemand_send_req(struct cachefiles_object *object, in cachefiles_ondemand_send_req() argument
490 struct cachefiles_cache *cache = object->volume->cache; in cachefiles_ondemand_send_req()
510 req->object = object; in cachefiles_ondemand_send_req()
538 cachefiles_ondemand_object_is_dropping(object)) { in cachefiles_ondemand_send_req()
548 !cachefiles_ondemand_object_is_open(object)) { in cachefiles_ondemand_send_req()
549 WARN_ON_ONCE(object->ondemand->ondemand_id == 0); in cachefiles_ondemand_send_req()
602 !cachefiles_ondemand_object_is_dropping(object)) in cachefiles_ondemand_send_req()
603 cachefiles_ondemand_set_object_close(object); in cachefiles_ondemand_send_req()
611 struct cachefiles_object *object = req->object; in cachefiles_ondemand_init_open_req() local
612 struct fscache_cookie *cookie = object->cookie; in cachefiles_ondemand_init_open_req()
613 struct fscache_volume *volume = object->volume->vcookie; in cachefiles_ondemand_init_open_req()
629 if (!(object->cookie->advice & FSCACHE_ADV_WANT_CACHE_SIZE)) { in cachefiles_ondemand_init_open_req()
645 struct cachefiles_object *object = req->object; in cachefiles_ondemand_init_close_req() local
647 if (!cachefiles_ondemand_object_is_open(object)) in cachefiles_ondemand_init_close_req()
650 trace_cachefiles_ondemand_close(object, &req->msg); in cachefiles_ondemand_init_close_req()
662 struct cachefiles_object *object = req->object; in cachefiles_ondemand_init_read_req() local
668 trace_cachefiles_ondemand_read(object, &req->msg, load); in cachefiles_ondemand_init_read_req()
672 int cachefiles_ondemand_init_object(struct cachefiles_object *object) in cachefiles_ondemand_init_object() argument
674 struct fscache_cookie *cookie = object->cookie; in cachefiles_ondemand_init_object()
675 struct fscache_volume *volume = object->volume->vcookie; in cachefiles_ondemand_init_object()
678 if (!object->ondemand) in cachefiles_ondemand_init_object()
687 if (cachefiles_ondemand_object_is_open(object)) in cachefiles_ondemand_init_object()
695 return cachefiles_ondemand_send_req(object, CACHEFILES_OP_OPEN, in cachefiles_ondemand_init_object()
699 void cachefiles_ondemand_clean_object(struct cachefiles_object *object) in cachefiles_ondemand_clean_object() argument
705 if (!object->ondemand) in cachefiles_ondemand_clean_object()
708 cachefiles_ondemand_send_req(object, CACHEFILES_OP_CLOSE, 0, in cachefiles_ondemand_clean_object()
711 if (!object->ondemand->ondemand_id) in cachefiles_ondemand_clean_object()
715 cache = object->volume->cache; in cachefiles_ondemand_clean_object()
717 cachefiles_ondemand_set_object_dropping(object); in cachefiles_ondemand_clean_object()
719 if (req->object == object) { in cachefiles_ondemand_clean_object()
728 cancel_work_sync(&object->ondemand->ondemand_work); in cachefiles_ondemand_clean_object()
731 int cachefiles_ondemand_init_obj_info(struct cachefiles_object *object, in cachefiles_ondemand_init_obj_info() argument
737 object->ondemand = kzalloc(sizeof(struct cachefiles_ondemand_info), in cachefiles_ondemand_init_obj_info()
739 if (!object->ondemand) in cachefiles_ondemand_init_obj_info()
742 object->ondemand->object = object; in cachefiles_ondemand_init_obj_info()
743 spin_lock_init(&object->ondemand->lock); in cachefiles_ondemand_init_obj_info()
744 INIT_WORK(&object->ondemand->ondemand_work, ondemand_object_worker); in cachefiles_ondemand_init_obj_info()
748 void cachefiles_ondemand_deinit_obj_info(struct cachefiles_object *object) in cachefiles_ondemand_deinit_obj_info() argument
750 kfree(object->ondemand); in cachefiles_ondemand_deinit_obj_info()
751 object->ondemand = NULL; in cachefiles_ondemand_deinit_obj_info()
754 int cachefiles_ondemand_read(struct cachefiles_object *object, in cachefiles_ondemand_read() argument
759 return cachefiles_ondemand_send_req(object, CACHEFILES_OP_READ, in cachefiles_ondemand_read()