super.c (3bf3e21c15d4386a5f15118ec39bbc1b67ea5759) | super.c (a8b0026847b8c43445c921ad2c85521c92eb175f) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * 4 * Copyright (C) 2011 Novell Inc. 5 */ 6 7#include <uapi/linux/magic.h> 8#include <linux/fs.h> --- 425 unchanged lines hidden (view full) --- 434} 435 436/* Workdir should not be subdir of upperdir and vice versa */ 437static bool ovl_workdir_ok(struct dentry *workdir, struct dentry *upperdir) 438{ 439 bool ok = false; 440 441 if (workdir != upperdir) { | 1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * 4 * Copyright (C) 2011 Novell Inc. 5 */ 6 7#include <uapi/linux/magic.h> 8#include <linux/fs.h> --- 425 unchanged lines hidden (view full) --- 434} 435 436/* Workdir should not be subdir of upperdir and vice versa */ 437static bool ovl_workdir_ok(struct dentry *workdir, struct dentry *upperdir) 438{ 439 bool ok = false; 440 441 if (workdir != upperdir) { |
442 ok = (lock_rename(workdir, upperdir) == NULL); 443 unlock_rename(workdir, upperdir); | 442 struct dentry *trap = lock_rename(workdir, upperdir); 443 if (!IS_ERR(trap)) 444 unlock_rename(workdir, upperdir); 445 ok = (trap == NULL); |
444 } 445 return ok; 446} 447 448static int ovl_setup_trap(struct super_block *sb, struct dentry *dir, 449 struct inode **ptrap, const char *name) 450{ 451 struct inode *trap; --- 1080 unchanged lines hidden --- | 446 } 447 return ok; 448} 449 450static int ovl_setup_trap(struct super_block *sb, struct dentry *dir, 451 struct inode **ptrap, const char *name) 452{ 453 struct inode *trap; --- 1080 unchanged lines hidden --- |