summaryrefslogtreecommitdiff
path: root/fs/aufs/file.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/aufs/file.c')
-rw-r--r--fs/aufs/file.c102
1 files changed, 51 insertions, 51 deletions
diff --git a/fs/aufs/file.c b/fs/aufs/file.c
index 6b8a66b4a..27c5bf825 100644
--- a/fs/aufs/file.c
+++ b/fs/aufs/file.c
@@ -69,7 +69,7 @@ struct file *au_h_open(struct dentry *dentry, aufs_bindex_t bindex, int flags,
}
}
flags &= ~O_CREAT;
- atomic_inc(&br->br_count);
+ au_br_get(br);
h_path.dentry = h_dentry;
h_path.mnt = au_br_mnt(br);
h_file = vfsub_dentry_open(&h_path, flags);
@@ -88,7 +88,7 @@ struct file *au_h_open(struct dentry *dentry, aufs_bindex_t bindex, int flags,
goto out; /* success */
out_br:
- atomic_dec(&br->br_count);
+ au_br_put(br);
out:
return h_file;
}
@@ -122,7 +122,7 @@ static int au_cmoo(struct dentry *dentry)
err = 0;
if (IS_ROOT(dentry))
goto out;
- cpg.bsrc = au_dbstart(dentry);
+ cpg.bsrc = au_dbtop(dentry);
if (!cpg.bsrc)
goto out;
@@ -237,7 +237,7 @@ int au_do_open(struct file *file, struct au_do_open_args *args)
if (!err)
err = args->open(file, vfsub_file_flags(file),
args->h_file);
- if (!err && au_fbstart(file) != au_dbstart(dentry))
+ if (!err && au_fbtop(file) != au_dbtop(dentry))
/*
* cmoo happens after h_file was opened.
* need to refresh file later.
@@ -270,49 +270,49 @@ out:
int au_reopen_nondir(struct file *file)
{
int err;
- aufs_bindex_t bstart;
+ aufs_bindex_t btop;
struct dentry *dentry;
struct file *h_file, *h_file_tmp;
dentry = file->f_path.dentry;
- bstart = au_dbstart(dentry);
+ btop = au_dbtop(dentry);
h_file_tmp = NULL;
- if (au_fbstart(file) == bstart) {
+ if (au_fbtop(file) == btop) {
h_file = au_hf_top(file);
if (file->f_mode == h_file->f_mode)
return 0; /* success */
h_file_tmp = h_file;
get_file(h_file_tmp);
- au_set_h_fptr(file, bstart, NULL);
+ au_set_h_fptr(file, btop, NULL);
}
AuDebugOn(au_fi(file)->fi_hdir);
/*
* it can happen
* file exists on both of rw and ro
- * open --> dbstart and fbstart are both 0
+ * open --> dbtop and fbtop are both 0
* prepend a branch as rw, "rw" become ro
* remove rw/file
* delete the top branch, "rw" becomes rw again
- * --> dbstart is 1, fbstart is still 0
- * write --> fbstart is 0 but dbstart is 1
+ * --> dbtop is 1, fbtop is still 0
+ * write --> fbtop is 0 but dbtop is 1
*/
- /* AuDebugOn(au_fbstart(file) < bstart); */
+ /* AuDebugOn(au_fbtop(file) < btop); */
- h_file = au_h_open(dentry, bstart, vfsub_file_flags(file) & ~O_TRUNC,
+ h_file = au_h_open(dentry, btop, vfsub_file_flags(file) & ~O_TRUNC,
file, /*force_wr*/0);
err = PTR_ERR(h_file);
if (IS_ERR(h_file)) {
if (h_file_tmp) {
- atomic_inc(&au_sbr(dentry->d_sb, bstart)->br_count);
- au_set_h_fptr(file, bstart, h_file_tmp);
+ au_sbr_get(dentry->d_sb, btop);
+ au_set_h_fptr(file, btop, h_file_tmp);
h_file_tmp = NULL;
}
goto out; /* todo: close all? */
}
err = 0;
- au_set_fbstart(file, bstart);
- au_set_h_fptr(file, bstart, h_file);
+ au_set_fbtop(file, btop);
+ au_set_h_fptr(file, btop, h_file);
au_update_figen(file);
/* todo: necessary? */
/* file->f_ra = h_file->f_ra; */
@@ -329,7 +329,7 @@ static int au_reopen_wh(struct file *file, aufs_bindex_t btgt,
struct dentry *hi_wh)
{
int err;
- aufs_bindex_t bstart;
+ aufs_bindex_t btop;
struct au_dinfo *dinfo;
struct dentry *h_dentry;
struct au_hdentry *hdp;
@@ -337,14 +337,14 @@ static int au_reopen_wh(struct file *file, aufs_bindex_t btgt,
dinfo = au_di(file->f_path.dentry);
AuRwMustWriteLock(&dinfo->di_rwsem);
- bstart = dinfo->di_bstart;
- dinfo->di_bstart = btgt;
+ btop = dinfo->di_btop;
+ dinfo->di_btop = btgt;
hdp = dinfo->di_hdentry;
h_dentry = hdp[0 + btgt].hd_dentry;
hdp[0 + btgt].hd_dentry = hi_wh;
err = au_reopen_nondir(file);
hdp[0 + btgt].hd_dentry = h_dentry;
- dinfo->di_bstart = bstart;
+ dinfo->di_btop = btop;
return err;
}
@@ -363,11 +363,11 @@ static int au_ready_to_write_wh(struct file *file, loff_t len,
.pin = pin
};
- au_update_dbstart(cpg.dentry);
+ au_update_dbtop(cpg.dentry);
inode = d_inode(cpg.dentry);
h_inode = NULL;
- if (au_dbstart(cpg.dentry) <= bcpup
- && au_dbend(cpg.dentry) >= bcpup) {
+ if (au_dbtop(cpg.dentry) <= bcpup
+ && au_dbbot(cpg.dentry) >= bcpup) {
h_dentry = au_h_dptr(cpg.dentry, bcpup);
if (h_dentry && d_is_positive(h_dentry))
h_inode = d_inode(h_dentry);
@@ -394,7 +394,7 @@ static int au_ready_to_write_wh(struct file *file, loff_t len,
int au_ready_to_write(struct file *file, loff_t len, struct au_pin *pin)
{
int err;
- aufs_bindex_t dbstart;
+ aufs_bindex_t dbtop;
struct dentry *parent;
struct inode *inode;
struct super_block *sb;
@@ -410,7 +410,7 @@ int au_ready_to_write(struct file *file, loff_t len, struct au_pin *pin)
sb = cpg.dentry->d_sb;
inode = d_inode(cpg.dentry);
- cpg.bsrc = au_fbstart(file);
+ cpg.bsrc = au_fbtop(file);
err = au_test_ro(sb, cpg.bsrc, inode);
if (!err && (au_hf_top(file)->f_mode & FMODE_WRITE)) {
err = au_pin(pin, cpg.dentry, cpg.bsrc, AuOpt_UDBA_NONE,
@@ -438,11 +438,11 @@ int au_ready_to_write(struct file *file, loff_t len, struct au_pin *pin)
if (unlikely(err))
goto out_dgrade;
- dbstart = au_dbstart(cpg.dentry);
- if (dbstart <= cpg.bdst)
+ dbtop = au_dbtop(cpg.dentry);
+ if (dbtop <= cpg.bdst)
cpg.bsrc = cpg.bdst;
- if (dbstart <= cpg.bdst /* just reopen */
+ if (dbtop <= cpg.bdst /* just reopen */
|| !d_unhashed(cpg.dentry) /* copyup and reopen */
) {
h_file = au_h_open_pre(cpg.dentry, cpg.bsrc, /*force_wr*/0);
@@ -450,7 +450,7 @@ int au_ready_to_write(struct file *file, loff_t len, struct au_pin *pin)
err = PTR_ERR(h_file);
else {
di_downgrade_lock(parent, AuLock_IR);
- if (dbstart > cpg.bdst)
+ if (dbtop > cpg.bdst)
err = au_sio_cpup_simple(&cpg);
if (!err)
err = au_reopen_nondir(file);
@@ -531,7 +531,7 @@ static int au_file_refresh_by_inode(struct file *file, int *need_reopen)
finfo = au_fi(file);
sb = cpg.dentry->d_sb;
inode = d_inode(cpg.dentry);
- cpg.bdst = au_ibstart(inode);
+ cpg.bdst = au_ibtop(inode);
if (cpg.bdst == finfo->fi_btop || IS_ROOT(cpg.dentry))
goto out;
@@ -552,7 +552,7 @@ static int au_file_refresh_by_inode(struct file *file, int *need_reopen)
&& au_opt_test(au_mntflags(sb), PLINK)
&& au_plink_test(inode)
&& !d_unhashed(cpg.dentry)
- && cpg.bdst < au_dbstart(cpg.dentry)) {
+ && cpg.bdst < au_dbtop(cpg.dentry)) {
err = au_test_and_cpup_dirs(cpg.dentry, cpg.bdst);
if (unlikely(err))
goto out_unlock;
@@ -580,7 +580,7 @@ out:
static void au_do_refresh_dir(struct file *file)
{
- aufs_bindex_t bindex, bend, new_bindex, brid;
+ aufs_bindex_t bindex, bbot, new_bindex, brid;
struct au_hfile *p, tmp, *q;
struct au_finfo *finfo;
struct super_block *sb;
@@ -594,8 +594,8 @@ static void au_do_refresh_dir(struct file *file)
AuDebugOn(!fidir);
p = fidir->fd_hfile + finfo->fi_btop;
brid = p->hf_br->br_id;
- bend = fidir->fd_bbot;
- for (bindex = finfo->fi_btop; bindex <= bend; bindex++, p++) {
+ bbot = fidir->fd_bbot;
+ for (bindex = finfo->fi_btop; bindex <= bbot; bindex++, p++) {
if (!p->hf_file)
continue;
@@ -620,8 +620,8 @@ static void au_do_refresh_dir(struct file *file)
p = fidir->fd_hfile;
if (!au_test_mmapped(file) && !d_unlinked(file->f_path.dentry)) {
- bend = au_sbend(sb);
- for (finfo->fi_btop = 0; finfo->fi_btop <= bend;
+ bbot = au_sbbot(sb);
+ for (finfo->fi_btop = 0; finfo->fi_btop <= bbot;
finfo->fi_btop++, p++)
if (p->hf_file) {
if (file_inode(p->hf_file))
@@ -629,16 +629,16 @@ static void au_do_refresh_dir(struct file *file)
au_hfput(p, file);
}
} else {
- bend = au_br_index(sb, brid);
- for (finfo->fi_btop = 0; finfo->fi_btop < bend;
+ bbot = au_br_index(sb, brid);
+ for (finfo->fi_btop = 0; finfo->fi_btop < bbot;
finfo->fi_btop++, p++)
if (p->hf_file)
au_hfput(p, file);
- bend = au_sbend(sb);
+ bbot = au_sbbot(sb);
}
- p = fidir->fd_hfile + bend;
- for (fidir->fd_bbot = bend; fidir->fd_bbot >= finfo->fi_btop;
+ p = fidir->fd_hfile + bbot;
+ for (fidir->fd_bbot = bbot; fidir->fd_bbot >= finfo->fi_btop;
fidir->fd_bbot--, p--)
if (p->hf_file) {
if (file_inode(p->hf_file))
@@ -654,7 +654,7 @@ static void au_do_refresh_dir(struct file *file)
static int refresh_file(struct file *file, int (*reopen)(struct file *file))
{
int err, need_reopen;
- aufs_bindex_t bend, bindex;
+ aufs_bindex_t bbot, bindex;
struct dentry *dentry;
struct au_finfo *finfo;
struct au_hfile *hfile;
@@ -667,9 +667,9 @@ static int refresh_file(struct file *file, int (*reopen)(struct file *file))
bindex = au_br_index(dentry->d_sb, hfile->hf_br->br_id);
AuDebugOn(bindex < 0);
if (bindex != finfo->fi_btop)
- au_set_fbstart(file, bindex);
+ au_set_fbtop(file, bindex);
} else {
- err = au_fidir_realloc(finfo, au_sbend(dentry->d_sb) + 1);
+ err = au_fidir_realloc(finfo, au_sbbot(dentry->d_sb) + 1);
if (unlikely(err))
goto out;
au_do_refresh_dir(file);
@@ -688,8 +688,8 @@ static int refresh_file(struct file *file, int (*reopen)(struct file *file))
/* error, close all lower files */
if (finfo->fi_hdir) {
- bend = au_fbend_dir(file);
- for (bindex = au_fbstart(file); bindex <= bend; bindex++)
+ bbot = au_fbbot_dir(file);
+ for (bindex = au_fbtop(file); bindex <= bbot; bindex++)
au_set_h_fptr(file, bindex, NULL);
}
@@ -703,7 +703,7 @@ int au_reval_and_lock_fdi(struct file *file, int (*reopen)(struct file *file),
{
int err;
unsigned int sigen, figen;
- aufs_bindex_t bstart;
+ aufs_bindex_t btop;
unsigned char pseudo_link;
struct dentry *dentry;
struct inode *inode;
@@ -715,9 +715,9 @@ int au_reval_and_lock_fdi(struct file *file, int (*reopen)(struct file *file),
fi_write_lock(file);
figen = au_figen(file);
di_write_lock_child(dentry);
- bstart = au_dbstart(dentry);
- pseudo_link = (bstart != au_ibstart(inode));
- if (sigen == figen && !pseudo_link && au_fbstart(file) == bstart) {
+ btop = au_dbtop(dentry);
+ pseudo_link = (btop != au_ibtop(inode));
+ if (sigen == figen && !pseudo_link && au_fbtop(file) == btop) {
if (!wlock) {
di_downgrade_lock(dentry, AuLock_IR);
fi_downgrade_lock(file);