diff options
author | Miklos Szeredi <mszeredi@redhat.com> | 2018-07-18 15:44:41 +0200 |
---|---|---|
committer | Miklos Szeredi <mszeredi@redhat.com> | 2018-07-18 15:44:41 +0200 |
commit | d1d04ef8572bc8c22265057bd3d5a79f223f8f52 (patch) | |
tree | 1271b2ebd9542e0070b0b3830b0bad17c76ca4ea /fs/overlayfs/inode.c | |
parent | e8c985bace1351c5f2d7a6f0d8ff3e677b58abb5 (diff) | |
download | linux-d1d04ef8572bc8c22265057bd3d5a79f223f8f52.tar.bz2 |
ovl: stack file ops
Implement file operations on a regular overlay file. The underlying file
is opened separately and cached in ->private_data.
It might be worth making an exception for such files when accounting in
nr_file to confirm to userspace expectations. We are only adding a small
overhead (248bytes for the struct file) since the real inode and dentry are
pinned by overlayfs anyway.
This patch doesn't have any effect, since the vfs will use d_real() to find
the real underlying file to open. The patch at the end of the series will
actually enable this functionality.
AV: make it use open_with_fake_path(), don't mess with override_creds
SzM: still need to mess with override_creds() until no fs uses
current_cred() in their open method.
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/overlayfs/inode.c')
-rw-r--r-- | fs/overlayfs/inode.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/overlayfs/inode.c b/fs/overlayfs/inode.c index 5b6c86703d34..391e3a3b8ba1 100644 --- a/fs/overlayfs/inode.c +++ b/fs/overlayfs/inode.c @@ -535,6 +535,7 @@ static void ovl_fill_inode(struct inode *inode, umode_t mode, dev_t rdev, switch (mode & S_IFMT) { case S_IFREG: inode->i_op = &ovl_file_inode_operations; + inode->i_fop = &ovl_file_operations; break; case S_IFDIR: |