static struct file *atomic_open(struct nameidata *nd, struct dentry *dentry,
struct path *path, struct opendata *od,
const struct open_flags *op,
- int *want_write, bool need_lookup,
+ bool *want_write, bool need_lookup,
bool *created)
{
struct inode *dir = nd->path.dentry->d_inode;
(open_flag & O_ACCMODE) != O_RDONLY) {
error = mnt_want_write(nd->path.mnt);
if (!error) {
- *want_write = 1;
+ *want_write = true;
} else if (!(open_flag & O_CREAT)) {
/*
* No O_CREATE -> atomicity not a requirement -> fall
static struct file *lookup_open(struct nameidata *nd, struct path *path,
struct opendata *od,
const struct open_flags *op,
- int *want_write, bool *created)
+ bool *want_write, bool *created)
{
struct dentry *dir = nd->path.dentry;
struct inode *dir_inode = dir->d_inode;
error = mnt_want_write(nd->path.mnt);
if (error)
goto out_dput;
- *want_write = 1;
+ *want_write = true;
*created = true;
error = security_path_mknod(&nd->path, dentry, mode, 0);
if (error)
{
struct dentry *dir = nd->path.dentry;
int open_flag = op->open_flag;
- int will_truncate = open_flag & O_TRUNC;
- int want_write = 0;
+ bool will_truncate = (open_flag & O_TRUNC) != 0;
+ bool want_write = false;
int acc_mode = op->acc_mode;
struct file *filp;
struct inode *inode;
bool created;
- int symlink_ok = 0;
+ bool symlink_ok = false;
struct path save_parent = { .dentry = NULL, .mnt = NULL };
bool retried = false;
int error;
if (nd->last.name[nd->last.len])
nd->flags |= LOOKUP_FOLLOW | LOOKUP_DIRECTORY;
if (open_flag & O_PATH && !(nd->flags & LOOKUP_FOLLOW))
- symlink_ok = 1;
+ symlink_ok = true;
/* we _can_ be in RCU mode here */
error = lookup_fast(nd, &nd->last, path, &inode);
if (likely(!error))
goto out;
if (created || !S_ISREG(filp->f_path.dentry->d_inode->i_mode))
- will_truncate = 0;
+ will_truncate = false;
audit_inode(pathname, filp->f_path.dentry);
goto opened;
if (created) {
/* Don't check for write permission, don't truncate */
open_flag &= ~O_TRUNC;
- will_truncate = 0;
+ will_truncate = false;
acc_mode = MAY_OPEN;
path_to_nameidata(path, nd);
goto finish_open_created;
*/
if (want_write) {
mnt_drop_write(nd->path.mnt);
- want_write = 0;
+ want_write = false;
}
error = -EEXIST;
audit_inode(pathname, nd->path.dentry);
finish_open:
if (!S_ISREG(nd->inode->i_mode))
- will_truncate = 0;
+ will_truncate = false;
if (will_truncate) {
error = mnt_want_write(nd->path.mnt);
if (error)
goto exit;
- want_write = 1;
+ want_write = true;
}
finish_open_created:
error = may_open(&nd->path, acc_mode, open_flag);
save_parent.dentry = NULL;
if (want_write) {
mnt_drop_write(nd->path.mnt);
- want_write = 0;
+ want_write = false;
}
retried = true;
goto retry_lookup;