int lprocfs_single_release(struct inode *inode, struct file *file)
{
+ LPROCFS_EXIT();
return single_release(inode, file);
}
EXPORT_SYMBOL(lprocfs_single_release);
int lprocfs_seq_release(struct inode *inode, struct file *file)
{
+ LPROCFS_EXIT();
return seq_release(inode, file);
}
EXPORT_SYMBOL(lprocfs_seq_release);
if (page == NULL)
return -ENOMEM;
- if (LPROCFS_ENTRY_CHECK(dp)) {
+ if (LPROCFS_ENTRY_AND_CHECK(dp)) {
rc = -ENOENT;
goto out;
}
if (dp->read_proc)
rc = dp->read_proc(page, &start, *ppos, PAGE_CACHE_SIZE,
&eof, dp->data);
+ LPROCFS_EXIT();
if (rc <= 0)
goto out;
struct proc_dir_entry *dp = PDE(f->f_dentry->d_inode);
int rc = -EIO;
- if (LPROCFS_ENTRY_CHECK(dp))
+ if (LPROCFS_ENTRY_AND_CHECK(dp))
return -ENOENT;
if (dp->write_proc)
rc = dp->write_proc(f, buf, size, dp->data);
+ LPROCFS_EXIT();
return rc;
}
{
unsigned int num_entry;
struct lprocfs_counter *percpu_cntr;
- struct lprocfs_counter_header *cntr_header;
int i;
unsigned long flags = 0;
for (i = 0; i < num_entry; i++) {
if (stats->ls_percpu[i] == NULL)
continue;
- cntr_header = &stats->ls_cnt_header[idx];
percpu_cntr = lprocfs_stats_counter_get(stats, i, idx);
cnt->lc_count += percpu_cntr->lc_count;
"lightweight_conn",
"short_io",
"pingless",
+ "flock_deadlock",
"unknown",
NULL
};
void lprocfs_clear_stats(struct lprocfs_stats *stats)
{
struct lprocfs_counter *percpu_cntr;
- struct lprocfs_counter_header *header;
int i;
int j;
unsigned int num_entry;
if (stats->ls_percpu[i] == NULL)
continue;
for (j = 0; j < stats->ls_num; j++) {
- header = &stats->ls_cnt_header[j];
percpu_cntr = lprocfs_stats_counter_get(stats, i, j);
percpu_cntr->lc_count = 0;
percpu_cntr->lc_min = LC_MIN_INIT;
struct seq_file *seq;
int rc;
- if (LPROCFS_ENTRY_CHECK(dp))
+ if (LPROCFS_ENTRY_AND_CHECK(dp))
return -ENOENT;
rc = seq_open(file, &lprocfs_stats_seq_sops);
- if (rc)
+ if (rc) {
+ LPROCFS_EXIT();
return rc;
+ }
seq = file->private_data;
seq->private = dp->data;
return 0;