Lines Matching refs:c
60 struct ubifs_info *c = inode->i_sb->s_fs_info; in read_block() local
65 data_key_init(c, &key, inode->i_ino, block); in read_block()
66 err = ubifs_tnc_lookup(c, &key, dn); in read_block()
82 err = ubifs_decompress(c, &dn->data, dlen, addr, &out_len, in read_block()
98 ubifs_err(c, "bad data node (block %u, inode %lu)", in read_block()
100 ubifs_dump_node(c, dn); in read_block()
163 struct ubifs_info *c = inode->i_sb->s_fs_info; in do_readpage() local
170 ubifs_err(c, "cannot read page %lu of inode %lu, error %d", in do_readpage()
200 static void release_new_page_budget(struct ubifs_info *c) in release_new_page_budget() argument
204 ubifs_release_budget(c, &req); in release_new_page_budget()
214 static void release_existing_page_budget(struct ubifs_info *c) in release_existing_page_budget() argument
216 struct ubifs_budget_req req = { .dd_growth = c->bi.page_budget}; in release_existing_page_budget()
218 ubifs_release_budget(c, &req); in release_existing_page_budget()
226 struct ubifs_info *c = inode->i_sb->s_fs_info; in write_begin_slow() local
247 err = ubifs_budget_space(c, &req); in write_begin_slow()
253 ubifs_release_budget(c, &req); in write_begin_slow()
265 ubifs_release_budget(c, &req); in write_begin_slow()
285 release_new_page_budget(c); in write_begin_slow()
293 ubifs_convert_page_budget(c); in write_begin_slow()
309 ubifs_release_dirty_inode_budget(c, ui); in write_begin_slow()
329 static int allocate_budget(struct ubifs_info *c, struct page *page, in allocate_budget() argument
390 return ubifs_budget_space(c, &req); in allocate_budget()
430 struct ubifs_info *c = inode->i_sb->s_fs_info; in ubifs_write_begin() local
438 ubifs_assert(!c->ro_media && !c->ro_mount); in ubifs_write_begin()
440 if (unlikely(c->ro_error)) in ubifs_write_begin()
475 err = allocate_budget(c, page, ui, appending); in ubifs_write_begin()
524 static void cancel_budget(struct ubifs_info *c, struct page *page, in cancel_budget() argument
529 ubifs_release_dirty_inode_budget(c, ui); in cancel_budget()
534 release_new_page_budget(c); in cancel_budget()
536 release_existing_page_budget(c); in cancel_budget()
546 struct ubifs_info *c = inode->i_sb->s_fs_info; in ubifs_write_end() local
565 cancel_budget(c, page, ui, appending); in ubifs_write_end()
578 atomic_long_inc(&c->dirty_pg_cnt); in ubifs_write_end()
610 static int populate_page(struct ubifs_info *c, struct page *page, in populate_page() argument
639 } else if (key_block(c, &bu->zbranch[nn].key) == page_block) { in populate_page()
653 err = ubifs_decompress(c, &dn->data, dlen, addr, &out_len, in populate_page()
663 } else if (key_block(c, &bu->zbranch[nn].key) < page_block) { in populate_page()
701 ubifs_err(c, "bad data node (block %u, inode %lu)", in populate_page()
714 static int ubifs_do_bulk_read(struct ubifs_info *c, struct bu_info *bu, in ubifs_do_bulk_read() argument
725 err = ubifs_tnc_get_bu_keys(c, bu); in ubifs_do_bulk_read()
756 ubifs_assert(bu->buf_len <= c->leb_size); in ubifs_do_bulk_read()
762 err = ubifs_tnc_bulk_read(c, bu); in ubifs_do_bulk_read()
767 err = populate_page(c, page1, bu, &n); in ubifs_do_bulk_read()
790 err = populate_page(c, page, bu, &n); in ubifs_do_bulk_read()
805 ubifs_warn(c, "ignoring error %d and skipping bulk-read", err); in ubifs_do_bulk_read()
825 struct ubifs_info *c = inode->i_sb->s_fs_info; in ubifs_bulk_read() local
832 if (!c->bulk_read) in ubifs_bulk_read()
862 if (mutex_trylock(&c->bu_mutex)) in ubifs_bulk_read()
863 bu = &c->bu; in ubifs_bulk_read()
873 bu->buf_len = c->max_bu_buf_len; in ubifs_bulk_read()
874 data_key_init(c, &bu->key, inode->i_ino, in ubifs_bulk_read()
876 err = ubifs_do_bulk_read(c, bu, page); in ubifs_bulk_read()
879 mutex_unlock(&c->bu_mutex); in ubifs_bulk_read()
904 struct ubifs_info *c = inode->i_sb->s_fs_info; in do_writepage() local
921 data_key_init(c, &key, inode->i_ino, block); in do_writepage()
922 err = ubifs_jnl_write_data(c, inode, &key, addr, blen); in do_writepage()
933 ubifs_err(c, "cannot write page %lu of inode %lu, error %d", in do_writepage()
935 ubifs_ro_mode(c, err); in do_writepage()
940 release_new_page_budget(c); in do_writepage()
942 release_existing_page_budget(c); in do_writepage()
944 atomic_long_dec(&c->dirty_pg_cnt); in do_writepage()
1105 static int do_truncation(struct ubifs_info *c, struct inode *inode, in do_truncation() argument
1128 err = ubifs_budget_space(c, &req); in do_truncation()
1188 err = ubifs_jnl_truncate(c, inode, old_size, new_size); in do_truncation()
1193 ubifs_release_budget(c, &req); in do_truncation()
1195 c->bi.nospace = c->bi.nospace_rp = 0; in do_truncation()
1211 static int do_setattr(struct ubifs_info *c, struct inode *inode, in do_setattr() argument
1220 err = ubifs_budget_space(c, &req); in do_setattr()
1251 ubifs_release_budget(c, &req); in do_setattr()
1261 struct ubifs_info *c = inode->i_sb->s_fs_info; in ubifs_setattr() local
1269 err = dbg_check_synced_i_size(c, inode); in ubifs_setattr()
1275 err = do_truncation(c, inode, attr); in ubifs_setattr()
1277 err = do_setattr(c, inode, attr); in ubifs_setattr()
1286 struct ubifs_info *c = inode->i_sb->s_fs_info; in ubifs_invalidatepage() local
1294 release_new_page_budget(c); in ubifs_invalidatepage()
1296 release_existing_page_budget(c); in ubifs_invalidatepage()
1298 atomic_long_dec(&c->dirty_pg_cnt); in ubifs_invalidatepage()
1314 struct ubifs_info *c = inode->i_sb->s_fs_info; in ubifs_fsync() local
1319 if (c->ro_mount) in ubifs_fsync()
1342 err = ubifs_sync_wbufs_by_inode(c, inode); in ubifs_fsync()
1378 struct ubifs_info *c = inode->i_sb->s_fs_info; in update_mctime() local
1385 err = ubifs_budget_space(c, &req); in update_mctime()
1395 ubifs_release_budget(c, &req); in update_mctime()
1447 struct ubifs_info *c = inode->i_sb->s_fs_info; in ubifs_vm_page_mkwrite() local
1454 ubifs_assert(!c->ro_media && !c->ro_mount); in ubifs_vm_page_mkwrite()
1456 if (unlikely(c->ro_error)) in ubifs_vm_page_mkwrite()
1485 err = ubifs_budget_space(c, &req); in ubifs_vm_page_mkwrite()
1488 ubifs_warn(c, "out of space for mmapped file (inode number %lu)", in ubifs_vm_page_mkwrite()
1502 release_new_page_budget(c); in ubifs_vm_page_mkwrite()
1505 ubifs_convert_page_budget(c); in ubifs_vm_page_mkwrite()
1507 atomic_long_inc(&c->dirty_pg_cnt); in ubifs_vm_page_mkwrite()
1521 ubifs_release_dirty_inode_budget(c, ui); in ubifs_vm_page_mkwrite()
1529 ubifs_release_budget(c, &req); in ubifs_vm_page_mkwrite()