diff options
Diffstat (limited to 'fs/aufs/file.c')
-rw-r--r-- | fs/aufs/file.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/fs/aufs/file.c b/fs/aufs/file.c index 0113f3ef4..429b56840 100644 --- a/fs/aufs/file.c +++ b/fs/aufs/file.c @@ -260,7 +260,7 @@ int au_do_open(struct file *file, struct au_do_open_args *args) } if (unlikely(err)) { finfo->fi_hdir = NULL; - au_finfo_fin(file); + au_finfo_fin(file, /*atonce*/0); } out: @@ -580,6 +580,7 @@ out: static void au_do_refresh_dir(struct file *file) { + int execed; aufs_bindex_t bindex, bbot, new_bindex, brid; struct au_hfile *p, tmp, *q; struct au_finfo *finfo; @@ -618,6 +619,7 @@ static void au_do_refresh_dir(struct file *file) } } + execed = vfsub_file_execed(file); p = fidir->fd_hfile; if (!au_test_mmapped(file) && !d_unlinked(file->f_path.dentry)) { bbot = au_sbbot(sb); @@ -626,14 +628,14 @@ static void au_do_refresh_dir(struct file *file) if (p->hf_file) { if (file_inode(p->hf_file)) break; - au_hfput(p, file); + au_hfput(p, execed); } } else { 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); + au_hfput(p, execed); bbot = au_sbbot(sb); } @@ -643,7 +645,7 @@ static void au_do_refresh_dir(struct file *file) if (p->hf_file) { if (file_inode(p->hf_file)) break; - au_hfput(p, file); + au_hfput(p, execed); } AuDebugOn(fidir->fd_bbot < finfo->fi_btop); } @@ -758,8 +760,7 @@ static int aufs_readpage(struct file *file __maybe_unused, struct page *page) } /* it will never be called, but necessary to support O_DIRECT */ -static ssize_t aufs_direct_IO(struct kiocb *iocb, struct iov_iter *iter, - loff_t offset) +static ssize_t aufs_direct_IO(struct kiocb *iocb, struct iov_iter *iter) { BUG(); return 0; } /* they will never be called. */ |