EXIT;
out:
-
+
if ((exp->exp_connect_flags & OBD_CONNECT_SOM) && !epoch_close &&
S_ISREG(inode->i_mode) && (och->och_flags & FMODE_WRITE)) {
ll_queue_done_writing(inode, LLIF_DONE_WRITING);
ll_file_data_put(fd);
RETURN(0);
}
-
+
if (lsm)
lov_test_and_clear_async_rc(lsm);
lli->lli_async_rc = 0;
/* reason for keep own exit path - don`t flood log
* with messages with -ESTALE errors.
*/
- if (!it_disposition(itp, DISP_OPEN_OPEN) ||
+ if (!it_disposition(itp, DISP_OPEN_OPEN) ||
it_open_error(DISP_OPEN_OPEN, itp))
GOTO(out, rc);
ll_release_openhandle(file->f_dentry, itp);
if (itp->d.lustre.it_lock_mode)
md_set_lock_data(sbi->ll_md_exp,
- &itp->d.lustre.it_lock_handle,
+ &itp->d.lustre.it_lock_handle,
file->f_dentry->d_inode);
rc = ll_prep_inode(&file->f_dentry->d_inode, req, NULL);
spin_lock(&lli->lli_lock);
/* "lli->lli_opendir_pid != 0" means someone has set it.
* "lli->lli_sai != NULL" means the previous statahead has not
- * been cleanup. */
+ * been cleanup. */
if (lli->lli_opendir_pid == 0 && lli->lli_sai == NULL) {
opendir_set = 1;
lli->lli_opendir_pid = cfs_curproc_pid();
och_p = &lli->lli_mds_read_och;
och_usecount = &lli->lli_open_fd_read_count;
}
-
+
down(&lli->lli_och_sem);
if (*och_p) { /* Open handle is present */
if (it_disposition(it, DISP_OPEN_OPEN)) {
up(&lli->lli_och_sem);
ll_file_data_put(fd);
GOTO(out_openerr, rc);
- }
+ }
ll_release_openhandle(file->f_dentry, it);
- lprocfs_counter_incr(ll_i2sbi(inode)->ll_stats,
+ lprocfs_counter_incr(ll_i2sbi(inode)->ll_stats,
LPROC_LL_OPEN);
}
(*och_usecount)++;
void ll_pin_extent_cb(void *data)
{
struct page *page = data;
-
+
page_cache_get(page);
return;
int rc;
struct page *page = data;
struct address_space *mapping;
-
+
ENTRY;
/* We have page reference already from ll_pin_page */
ll_teardown_mmaps(mapping,
(__u64)page->index << PAGE_CACHE_SHIFT,
((__u64)page->index<<PAGE_CACHE_SHIFT)|
- ~PAGE_CACHE_MASK);
+ ~PAGE_CACHE_MASK);
LL_CDEBUG_PAGE(D_PAGE, page, "removing page\n");
if (!discard && clear_page_dirty_for_io(page)) {
};
/**
- * Checks if requested extent lock is compatible with a lock
+ * Checks if requested extent lock is compatible with a lock
* under a page cache page.
*
* Checks if the lock under \a page is compatible with a read or write lock
/* BUG: 5972 */
file_accessed(file);
retval = generic_file_read(file, buf, chunk, ppos);
- ll_file_put_lock(inode, end, lock_style, cookie, &tree,
+ ll_file_put_lock(inode, end, lock_style, cookie, &tree,
OBD_BRW_READ);
} else {
retval = ll_file_lockless_io(file, buf, chunk, ppos, READ);
goto out;
}
-int ll_lov_getstripe_ea_info(struct inode *inode, const char *filename,
- struct lov_mds_md **lmmp, int *lmm_size,
+int ll_lov_getstripe_ea_info(struct inode *inode, const char *filename,
+ struct lov_mds_md **lmmp, int *lmm_size,
struct ptlrpc_request **request)
{
struct ll_sb_info *sbi = ll_i2sbi(inode);
if (IS_ERR(op_data))
RETURN(PTR_ERR(op_data));
- rc = md_enqueue(ll_i2mdexp(head_inode), &einfo, &oit,
+ rc = md_enqueue(ll_i2mdexp(head_inode), &einfo, &oit,
op_data, &lockh, NULL, 0, NULL, 0);
ll_finish_md_op_data(op_data);
inode, och);
out:
/* this one is in place of ll_file_open */
- ptlrpc_req_finished(it->d.lustre.it_data);
- it_clear_disposition(it, DISP_ENQ_OPEN_REF);
+ if (it_disposition(it, DISP_ENQ_OPEN_REF)) {
+ ptlrpc_req_finished(it->d.lustre.it_data);
+ it_clear_disposition(it, DISP_ENQ_OPEN_REF);
+ }
RETURN(rc);
}
default: {
int err;
- if (LLIOC_STOP ==
+ if (LLIOC_STOP ==
ll_iocontrol_call(inode, file, cmd, arg, &err))
RETURN(err);
}
retval = offset;
}
-
+
RETURN(retval);
}
if (data && lsm) {
struct obdo *oa;
-
+
OBDO_ALLOC(oa);
if (!oa)
RETURN(rc ? rc : -ENOMEM);
inode->i_ino, file_lock);
ll_stats_ops_tally(ll_i2sbi(inode), LPROC_LL_FLOCK, 1);
-
+
if (file_lock->fl_flags & FL_FLOCK) {
LASSERT((cmd == F_SETLKW) || (cmd == F_SETLK));
/* set missing params for flock() calls */
LUSTRE_OPC_ANY, NULL);
if (IS_ERR(op_data))
RETURN(PTR_ERR(op_data));
-
+
CDEBUG(D_DLMTRACE, "inode=%lu, pid=%u, flags=%#x, mode=%u, "
"start="LPU64", end="LPU64"\n", inode->i_ino, flock.l_flock.pid,
flags, einfo.ei_mode, flock.l_flock.start, flock.l_flock.end);
inode->i_ino, inode->i_generation, inode, mask);
if (ll_i2sbi(inode)->ll_flags & LL_SBI_RMT_CLIENT)
return lustre_check_remote_perm(inode, mask);
-
+
ll_stats_ops_tally(ll_i2sbi(inode), LPROC_LL_INODE_PERM, 1);
return generic_permission(inode, mask, lustre_check_acl);
}
if (capable(CAP_DAC_READ_SEARCH) && ((mask == MAY_READ) ||
(S_ISDIR(inode->i_mode) && !(mask & MAY_WRITE))))
return 0;
-
+
return -EACCES;
}
#endif
static struct llioc_ctl_data {
struct rw_semaphore ioc_sem;
struct list_head ioc_head;
-} llioc = {
- __RWSEM_INITIALIZER(llioc.ioc_sem),
+} llioc = {
+ __RWSEM_INITIALIZER(llioc.ioc_sem),
CFS_LIST_HEAD_INIT(llioc.ioc_head)
};
EXPORT_SYMBOL(ll_iocontrol_register);
EXPORT_SYMBOL(ll_iocontrol_unregister);
-enum llioc_iter ll_iocontrol_call(struct inode *inode, struct file *file,
+enum llioc_iter ll_iocontrol_call(struct inode *inode, struct file *file,
unsigned int cmd, unsigned long arg, int *rcp)
{
enum llioc_iter ret = LLIOC_CONT;
down_read(&llioc.ioc_sem);
list_for_each_entry(data, &llioc.ioc_head, iocd_list) {
for (i = 0; i < data->iocd_count; i++) {
- if (cmd != data->iocd_cmd[i])
+ if (cmd != data->iocd_cmd[i])
continue;
ret = data->iocd_cb(inode, file, cmd, arg, data, &rc);