/* #define DEBUG */
#define DPRINTK(fmt, ...) \
- pr_debug(KBUILD_MODNAME ":pid:%d:%s: " fmt "\n",\
+ pr_debug(KBUILD_MODNAME ":pid:%d:%s: " fmt, \
current->pid, __func__, ##__VA_ARGS__)
#define AUTOFS_WARN(fmt, ...) \
- pr_warn(KBUILD_MODNAME ":pid:%d:%s: " fmt "\n", \
+ pr_warn(KBUILD_MODNAME ":pid:%d:%s: " fmt, \
current->pid, __func__, ##__VA_ARGS__)
#define AUTOFS_ERROR(fmt, ...) \
- pr_err(KBUILD_MODNAME ":pid:%d:%s: " fmt "\n", \
+ pr_err(KBUILD_MODNAME ":pid:%d:%s: " fmt, \
current->pid, __func__, ##__VA_ARGS__)
/*
if ((param->ver_major != AUTOFS_DEV_IOCTL_VERSION_MAJOR) ||
(param->ver_minor > AUTOFS_DEV_IOCTL_VERSION_MINOR)) {
AUTOFS_WARN("ioctl control interface version mismatch: "
- "kernel(%u.%u), user(%u.%u), cmd(%d)",
+ "kernel(%u.%u), user(%u.%u), cmd(%d)\n",
AUTOFS_DEV_IOCTL_VERSION_MAJOR,
AUTOFS_DEV_IOCTL_VERSION_MINOR,
param->ver_major, param->ver_minor, cmd);
err = check_dev_ioctl_version(cmd, param);
if (err) {
AUTOFS_WARN("invalid device control module version "
- "supplied for cmd(0x%08x)", cmd);
+ "supplied for cmd(0x%08x)\n", cmd);
goto out;
}
err = invalid_str(param->path, param->size - sizeof(*param));
if (err) {
AUTOFS_WARN(
- "path string terminator missing for cmd(0x%08x)",
+ "path string terminator missing for cmd(0x%08x)\n",
cmd);
goto out;
}
err = check_name(param->path);
if (err) {
- AUTOFS_WARN("invalid path supplied for cmd(0x%08x)",
+ AUTOFS_WARN("invalid path supplied for cmd(0x%08x)\n",
cmd);
goto out;
}
new_pid = get_task_pid(current, PIDTYPE_PGID);
if (ns_of_pid(new_pid) != ns_of_pid(sbi->oz_pgrp)) {
- AUTOFS_WARN("not allowed to change PID namespace");
+ AUTOFS_WARN("not allowed to change PID namespace\n");
err = -EINVAL;
goto out;
}
fn = lookup_dev_ioctl(cmd);
if (!fn) {
- AUTOFS_WARN("unknown command 0x%08x", command);
+ AUTOFS_WARN("unknown command 0x%08x\n", command);
return -ENOTTY;
}
r = misc_register(&_autofs_dev_ioctl_misc);
if (r) {
- AUTOFS_ERROR("misc_register failed for control device");
+ AUTOFS_ERROR("misc_register failed for control device\n");
return r;
}
struct path path = {.mnt = mnt, .dentry = dentry};
int status = 1;
- DPRINTK("dentry %p %pd", dentry, dentry);
+ DPRINTK("dentry %p %pd\n", dentry, dentry);
path_get(&path);
status = 0;
done:
- DPRINTK("returning = %d", status);
+ DPRINTK("returning = %d\n", status);
path_put(&path);
return status;
}
unsigned long timeout,
int do_now)
{
- DPRINTK("top %p %pd", top, top);
+ DPRINTK("top %p %pd\n", top, top);
/* If it's busy update the expiry counters */
if (!may_umount_tree(mnt)) {
struct autofs_info *top_ino = autofs4_dentry_ino(top);
struct dentry *p;
- DPRINTK("top %p %pd", top, top);
+ DPRINTK("top %p %pd\n", top, top);
/* Negative dentry - give up */
if (!simple_positive(top))
p = NULL;
while ((p = get_next_positive_dentry(p, top))) {
- DPRINTK("dentry %p %pd", p, p);
+ DPRINTK("dentry %p %pd\n", p, p);
/*
* Is someone visiting anywhere in the subtree ?
{
struct dentry *p;
- DPRINTK("parent %p %pd", parent, parent);
+ DPRINTK("parent %p %pd\n", parent, parent);
p = NULL;
while ((p = get_next_positive_dentry(p, parent))) {
- DPRINTK("dentry %p %pd", p, p);
+ DPRINTK("dentry %p %pd\n", p, p);
if (d_mountpoint(p)) {
/* Can we umount this guy */
* offset (autofs-5.0+).
*/
if (d_mountpoint(dentry)) {
- DPRINTK("checking mountpoint %p %pd", dentry, dentry);
+ DPRINTK("checking mountpoint %p %pd\n", dentry, dentry);
/* Can we umount this guy */
if (autofs4_mount_busy(mnt, dentry))
}
if (d_really_is_positive(dentry) && d_is_symlink(dentry)) {
- DPRINTK("checking symlink %p %pd", dentry, dentry);
+ DPRINTK("checking symlink %p %pd\n", dentry, dentry);
/*
* A symlink can't be "busy" in the usual sense so
* just check last used for expire timeout.
return NULL;
found:
- DPRINTK("returning %p %pd", expired, expired);
+ DPRINTK("returning %p %pd\n", expired, expired);
ino->flags |= AUTOFS_INF_EXPIRING;
smp_mb();
ino->flags &= ~AUTOFS_INF_NO_RCU;
if (ino->flags & AUTOFS_INF_EXPIRING) {
spin_unlock(&sbi->fs_lock);
- DPRINTK("waiting for expire %p name=%pd", dentry, dentry);
+ DPRINTK("waiting for expire %p name=%pd\n", dentry, dentry);
status = autofs4_wait(sbi, dentry, NFY_NONE);
wait_for_completion(&ino->expire_complete);
- DPRINTK("expire done status=%d", status);
+ DPRINTK("expire done status=%d\n", status);
if (d_unhashed(dentry))
return -EAGAIN;
put_pid(sbi->oz_pgrp);
}
- DPRINTK("shutting down");
+ DPRINTK("shutting down\n");
kill_litter_super(sb);
if (sbi)
kfree_rcu(sbi, rcu);
sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
if (!sbi)
return -ENOMEM;
- DPRINTK("starting up, sbi = %p", sbi);
+ DPRINTK("starting up, sbi = %p\n", sbi);
s->s_fs_info = sbi;
sbi->magic = AUTOFS_SBI_MAGIC;
if (parse_options(data, &pipefd, &root_inode->i_uid, &root_inode->i_gid,
&pgrp, &pgrp_set, &sbi->type, &sbi->min_proto,
&sbi->max_proto)) {
- AUTOFS_ERROR("called with bogus options");
+ AUTOFS_ERROR("called with bogus options\n");
goto fail_dput;
}
if (pgrp_set) {
sbi->oz_pgrp = find_get_pid(pgrp);
if (!sbi->oz_pgrp) {
- AUTOFS_ERROR("could not find process group %d",
+ AUTOFS_ERROR("could not find process group %d\n",
pgrp);
goto fail_dput;
}
if (sbi->max_proto < AUTOFS_MIN_PROTO_VERSION ||
sbi->min_proto > AUTOFS_MAX_PROTO_VERSION) {
AUTOFS_ERROR("kernel does not match daemon version "
- "daemon (%d, %d) kernel (%d, %d)",
+ "daemon (%d, %d) kernel (%d, %d)\n",
sbi->min_proto, sbi->max_proto,
AUTOFS_MIN_PROTO_VERSION, AUTOFS_MAX_PROTO_VERSION);
goto fail_dput;
sbi->version = sbi->max_proto;
sbi->sub_version = AUTOFS_PROTO_SUBVERSION;
- DPRINTK("pipe fd = %d, pgrp = %u", pipefd, pid_nr(sbi->oz_pgrp));
+ DPRINTK("pipe fd = %d, pgrp = %u\n", pipefd, pid_nr(sbi->oz_pgrp));
pipe = fget(pipefd);
if (!pipe) {
- AUTOFS_ERROR("could not open pipe file descriptor");
+ AUTOFS_ERROR("could not open pipe file descriptor\n");
goto fail_dput;
}
ret = autofs_prepare_pipe(pipe);
* Failure ... clean up.
*/
fail_fput:
- AUTOFS_ERROR("pipe file descriptor does not contain proper ops");
+ AUTOFS_ERROR("pipe file descriptor does not contain proper ops\n");
fput(pipe);
/* fall through */
fail_dput:
struct dentry *dentry = file->f_path.dentry;
struct autofs_sb_info *sbi = autofs4_sbi(dentry->d_sb);
- DPRINTK("file=%p dentry=%p %pd", file, dentry, dentry);
+ DPRINTK("file=%p dentry=%p %pd\n", file, dentry, dentry);
if (autofs4_oz_mode(sbi))
goto out;
struct autofs_info *ino = autofs4_dentry_ino(de);
struct autofs_sb_info *sbi = autofs4_sbi(de->d_sb);
- DPRINTK("releasing %p", de);
+ DPRINTK("releasing %p\n", de);
if (!ino)
return;
if (ino->flags & AUTOFS_INF_PENDING) {
if (rcu_walk)
return -ECHILD;
- DPRINTK("waiting for mount name=%pd", dentry);
+ DPRINTK("waiting for mount name=%pd\n", dentry);
status = autofs4_wait(sbi, dentry, NFY_MOUNT);
- DPRINTK("mount wait done status=%d", status);
+ DPRINTK("mount wait done status=%d\n", status);
}
ino->last_used = jiffies;
return status;
struct autofs_info *ino = autofs4_dentry_ino(dentry);
int status;
- DPRINTK("dentry=%p %pd", dentry, dentry);
+ DPRINTK("dentry=%p %pd\n", dentry, dentry);
/* The daemon never triggers a mount. */
if (autofs4_oz_mode(sbi))
struct autofs_info *ino = autofs4_dentry_ino(dentry);
int status;
- DPRINTK("dentry=%p %pd", dentry, dentry);
+ DPRINTK("dentry=%p %pd\n", dentry, dentry);
/* The daemon never waits. */
if (autofs4_oz_mode(sbi)) {
struct autofs_info *ino;
struct dentry *active;
- DPRINTK("name = %pd", dentry);
+ DPRINTK("name = %pd\n", dentry);
/* File name too long to exist */
if (dentry->d_name.len > NAME_MAX)
sbi = autofs4_sbi(dir->i_sb);
- DPRINTK("pid = %u, pgrp = %u, catatonic = %d, oz_mode = %d",
+ DPRINTK("pid = %u, pgrp = %u, catatonic = %d, oz_mode = %d\n",
current->pid, task_pgrp_nr(current), sbi->catatonic,
autofs4_oz_mode(sbi));
size_t size = strlen(symname);
char *cp;
- DPRINTK("%s <- %pd", symname, dentry);
+ DPRINTK("%s <- %pd\n", symname, dentry);
if (!autofs4_oz_mode(sbi))
return -EACCES;
struct autofs_info *ino = autofs4_dentry_ino(dentry);
struct autofs_info *p_ino;
- DPRINTK("dentry %p, removing %pd", dentry, dentry);
+ DPRINTK("dentry %p, removing %pd\n", dentry, dentry);
if (!autofs4_oz_mode(sbi))
return -EACCES;
if (!autofs4_oz_mode(sbi))
return -EACCES;
- DPRINTK("dentry %p, creating %pd", dentry, dentry);
+ DPRINTK("dentry %p, creating %pd\n", dentry, dentry);
BUG_ON(!ino);
if (may_umount(mnt))
status = 1;
- DPRINTK("returning %d", status);
+ DPRINTK("returning %d\n", status);
status = put_user(status, p);
struct autofs_sb_info *sbi = autofs4_sbi(inode->i_sb);
void __user *p = (void __user *)arg;
- DPRINTK("cmd = 0x%08x, arg = 0x%08lx, sbi = %p, pgrp = %u",
+ DPRINTK("cmd = 0x%08x, arg = 0x%08lx, sbi = %p, pgrp = %u\n",
cmd, arg, sbi, task_pgrp_nr(current));
if (_IOC_TYPE(cmd) != _IOC_TYPE(AUTOFS_IOC_FIRST) ||
return;
}
- DPRINTK("entering catatonic mode");
+ DPRINTK("entering catatonic mode\n");
sbi->catatonic = 1;
wq = sbi->queues;
struct file *pipe = NULL;
size_t pktsz;
- DPRINTK("wait id = 0x%08lx, name = %.*s, type=%d",
+ DPRINTK("wait id = 0x%08lx, name = %.*s, type=%d\n",
(unsigned long) wq->wait_queue_token,
wq->name.len, wq->name.name, type);
break;
}
default:
- AUTOFS_WARN("bad type %d!", type);
+ AUTOFS_WARN("bad type %d!\n", type);
mutex_unlock(&sbi->wq_mutex);
return;
}
autofs_ptype_expire_indirect;
}
- DPRINTK("new wait id = 0x%08lx, name = %.*s, nfy=%d",
+ DPRINTK("new wait id = 0x%08lx, name = %.*s, nfy=%d\n",
(unsigned long) wq->wait_queue_token, wq->name.len,
wq->name.name, notify);
autofs4_notify_daemon(sbi, wq, type);
} else {
wq->wait_ctr++;
- DPRINTK("existing wait id = 0x%08lx, name = %.*s, nfy=%d",
+ DPRINTK("existing wait id = 0x%08lx, name = %.*s, nfy=%d\n",
(unsigned long) wq->wait_queue_token, wq->name.len,
wq->name.name, notify);
mutex_unlock(&sbi->wq_mutex);
recalc_sigpending();
spin_unlock_irqrestore(¤t->sighand->siglock, irqflags);
} else {
- DPRINTK("skipped sleeping");
+ DPRINTK("skipped sleeping\n");
}
status = wq->status;