luo_file
struct luo_file *iter;
struct luo_file *luo_file;
luo_file = kzalloc_obj(*luo_file);
if (!luo_file) {
luo_file->file = file;
luo_file->fh = fh;
luo_file->token = token;
mutex_init(&luo_file->mutex);
luo_file->serialized_data = args.serialized_data;
luo_file->private_data = args.private_data;
list_add_tail(&luo_file->list, &file_set->files_list);
kfree(luo_file);
struct luo_file *luo_file;
luo_file = list_last_entry(&file_set->files_list,
struct luo_file, list);
args.handler = luo_file->fh;
args.file = luo_file->file;
args.serialized_data = luo_file->serialized_data;
args.private_data = luo_file->private_data;
luo_file->fh->ops->unpreserve(&args);
luo_flb_file_unpreserve(luo_file->fh);
list_del(&luo_file->list);
fput(luo_file->file);
mutex_destroy(&luo_file->mutex);
kfree(luo_file);
struct luo_file *luo_file)
guard(mutex)(&luo_file->mutex);
if (luo_file->fh->ops->freeze) {
args.handler = luo_file->fh;
args.file = luo_file->file;
args.serialized_data = luo_file->serialized_data;
args.private_data = luo_file->private_data;
err = luo_file->fh->ops->freeze(&args);
luo_file->serialized_data = args.serialized_data;
struct luo_file *luo_file)
guard(mutex)(&luo_file->mutex);
if (luo_file->fh->ops->unfreeze) {
args.handler = luo_file->fh;
args.file = luo_file->file;
args.serialized_data = luo_file->serialized_data;
args.private_data = luo_file->private_data;
luo_file->fh->ops->unfreeze(&args);
struct luo_file *failed_entry)
struct luo_file *luo_file;
list_for_each_entry(luo_file, files_list, list) {
if (luo_file == failed_entry)
luo_file_unfreeze_one(file_set, luo_file);
struct luo_file *luo_file;
list_for_each_entry(luo_file, &file_set->files_list, list) {
err = luo_file_freeze_one(file_set, luo_file);
luo_file->token, luo_file->fh->compatible,
strscpy(file_ser[i].compatible, luo_file->fh->compatible,
file_ser[i].data = luo_file->serialized_data;
file_ser[i].token = luo_file->token;
__luo_file_unfreeze(file_set, luo_file);
struct luo_file *luo_file;
list_for_each_entry(luo_file, &file_set->files_list, list) {
if (luo_file->token == token) {
guard(mutex)(&luo_file->mutex);
if (luo_file->retrieve_status < 0) {
return luo_file->retrieve_status;
if (luo_file->retrieve_status > 0) {
get_file(luo_file->file);
*filep = luo_file->file;
args.handler = luo_file->fh;
args.serialized_data = luo_file->serialized_data;
err = luo_file->fh->ops->retrieve(&args);
luo_file->retrieve_status = err;
luo_file->file = args.file;
get_file(luo_file->file);
*filep = luo_file->file;
luo_file->retrieve_status = 1;
struct luo_file *luo_file)
guard(mutex)(&luo_file->mutex);
if (luo_file->fh->ops->can_finish) {
args.handler = luo_file->fh;
args.file = luo_file->file;
args.serialized_data = luo_file->serialized_data;
args.retrieve_status = luo_file->retrieve_status;
can_finish = luo_file->fh->ops->can_finish(&args);
struct luo_file *luo_file)
guard(mutex)(&luo_file->mutex);
args.handler = luo_file->fh;
args.file = luo_file->file;
args.serialized_data = luo_file->serialized_data;
args.retrieve_status = luo_file->retrieve_status;
luo_file->fh->ops->finish(&args);
luo_flb_file_finish(luo_file->fh);
struct luo_file *luo_file;
list_for_each_entry(luo_file, files_list, list) {
err = luo_file_can_finish_one(file_set, luo_file);
luo_file = list_last_entry(&file_set->files_list,
struct luo_file, list);
luo_file_finish_one(file_set, luo_file);
if (luo_file->file)
fput(luo_file->file);
list_del(&luo_file->list);
mutex_destroy(&luo_file->mutex);
kfree(luo_file);
struct luo_file *luo_file;
luo_file = kzalloc_obj(*luo_file);
if (!luo_file)
luo_file->fh = fh;
luo_file->file = NULL;
luo_file->serialized_data = file_ser[i].data;
luo_file->token = file_ser[i].token;
mutex_init(&luo_file->mutex);
list_add_tail(&luo_file->list, &file_set->files_list);