Skip to content

Commit 264efe4

Browse files
committed
Merge tag 'ovl-fixes-6.10-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/overlayfs/vfs
Pull overlayfs fixes from Miklos Szeredi: "Fix two bugs, one originating in this cycle and one from 6.6" * tag 'ovl-fixes-6.10-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/overlayfs/vfs: ovl: fix encoding fid for lower only root ovl: fix copy-up in tmpfile
2 parents a502e72 + 004b8d1 commit 264efe4

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

fs/overlayfs/dir.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1314,10 +1314,6 @@ static int ovl_create_tmpfile(struct file *file, struct dentry *dentry,
13141314
int flags = file->f_flags | OVL_OPEN_FLAGS;
13151315
int err;
13161316

1317-
err = ovl_copy_up(dentry->d_parent);
1318-
if (err)
1319-
return err;
1320-
13211317
old_cred = ovl_override_creds(dentry->d_sb);
13221318
err = ovl_setup_cred_for_create(dentry, inode, mode, old_cred);
13231319
if (err)
@@ -1360,6 +1356,10 @@ static int ovl_tmpfile(struct mnt_idmap *idmap, struct inode *dir,
13601356
if (!OVL_FS(dentry->d_sb)->tmpfile)
13611357
return -EOPNOTSUPP;
13621358

1359+
err = ovl_copy_up(dentry->d_parent);
1360+
if (err)
1361+
return err;
1362+
13631363
err = ovl_want_write(dentry);
13641364
if (err)
13651365
return err;

fs/overlayfs/export.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,10 @@ static int ovl_check_encode_origin(struct dentry *dentry)
181181
struct ovl_fs *ofs = OVL_FS(dentry->d_sb);
182182
bool decodable = ofs->config.nfs_export;
183183

184+
/* No upper layer? */
185+
if (!ovl_upper_mnt(ofs))
186+
return 1;
187+
184188
/* Lower file handle for non-upper non-decodable */
185189
if (!ovl_dentry_upper(dentry) && !decodable)
186190
return 1;
@@ -209,7 +213,7 @@ static int ovl_check_encode_origin(struct dentry *dentry)
209213
* ovl_connect_layer() will try to make origin's layer "connected" by
210214
* copying up a "connectable" ancestor.
211215
*/
212-
if (d_is_dir(dentry) && ovl_upper_mnt(ofs) && decodable)
216+
if (d_is_dir(dentry) && decodable)
213217
return ovl_connect_layer(dentry);
214218

215219
/* Lower file handle for indexed and non-upper dir/non-dir */

0 commit comments

Comments
 (0)