mdt->mdt_identity_cache->uc_entry_expire);
}
-static int lprocfs_wr_identity_expire(struct file *file, const char *buffer,
- unsigned long count, void *data)
+static int lprocfs_wr_identity_expire(struct file *file,
+ const char __user *buffer,
+ unsigned long count, void *data)
{
struct obd_device *obd = data;
struct mdt_device *mdt = mdt_dev(obd->obd_lu_dev);
}
static int lprocfs_wr_identity_acquire_expire(struct file *file,
- const char *buffer,
- unsigned long count,
- void *data)
+ const char __user *buffer,
+ unsigned long count,
+ void *data)
{
struct obd_device *obd = data;
struct mdt_device *mdt = mdt_dev(obd->obd_lu_dev);
return len;
}
-static int lprocfs_wr_identity_upcall(struct file *file, const char *buffer,
+static int lprocfs_wr_identity_upcall(struct file *file,
+ const char __user *buffer,
unsigned long count, void *data)
{
struct obd_device *obd = data;
RETURN(rc);
}
-static int lprocfs_wr_identity_flush(struct file *file, const char *buffer,
- unsigned long count, void *data)
+static int lprocfs_wr_identity_flush(struct file *file,
+ const char __user *buffer,
+ unsigned long count, void *data)
{
struct obd_device *obd = data;
struct mdt_device *mdt = mdt_dev(obd->obd_lu_dev);
return count;
}
-static int lprocfs_wr_identity_info(struct file *file, const char *buffer,
+static int lprocfs_wr_identity_info(struct file *file,
+ const char __user *buffer,
unsigned long count, void *data)
{
struct obd_device *obd = data;
mdt->mdt_lut.lut_mds_capa ? "mds" : "");
}
-static int lprocfs_wr_capa(struct file *file, const char *buffer,
+static int lprocfs_wr_capa(struct file *file, const char __user *buffer,
unsigned long count, void *data)
{
struct obd_device *obd = data;
return snprintf(page, count, "%lu\n", mdt->mdt_capa_timeout);
}
-static int lprocfs_wr_capa_timeout(struct file *file, const char *buffer,
- unsigned long count, void *data)
+static int lprocfs_wr_capa_timeout(struct file *file, const char __user *buffer,
+ unsigned long count, void *data)
{
struct obd_device *obd = data;
struct mdt_device *mdt = mdt_dev(obd->obd_lu_dev);
return snprintf(page, count, "%lu\n", mdt->mdt_ck_timeout);
}
-static int lprocfs_wr_ck_timeout(struct file *file, const char *buffer,
- unsigned long count, void *data)
+static int lprocfs_wr_ck_timeout(struct file *file, const char __user *buffer,
+ unsigned long count, void *data)
{
struct obd_device *obd = data;
struct mdt_device *mdt = mdt_dev(obd->obd_lu_dev);
#define BUFLEN (UUID_MAX + 4)
-static int lprocfs_mdt_wr_evict_client(struct file *file, const char *buffer,
- unsigned long count, void *data)
+static int lprocfs_mdt_wr_evict_client(struct file *file,
+ const char __user *buffer,
+ unsigned long count, void *data)
{
char *kbuf;
char *tmpbuf;
return snprintf(page, count, "%d\n", mdt->mdt_lut.lut_sec_level);
}
-static int lprocfs_wr_sec_level(struct file *file, const char *buffer,
- unsigned long count, void *data)
+static int lprocfs_wr_sec_level(struct file *file, const char __user *buffer,
+ unsigned long count, void *data)
{
struct obd_device *obd = data;
struct mdt_device *mdt = mdt_dev(obd->obd_lu_dev);
return snprintf(page, count, "%u\n", mdt_cos_is_enabled(mdt));
}
-static int lprocfs_wr_cos(struct file *file, const char *buffer,
- unsigned long count, void *data)
+static int lprocfs_wr_cos(struct file *file, const char __user *buffer,
+ unsigned long count, void *data)
{
struct obd_device *obd = data;
struct mdt_device *mdt = mdt_dev(obd->obd_lu_dev);
return 0;
}
-static int lprocfs_wr_root_squash(struct file *file, const char *buffer,
+static int lprocfs_wr_root_squash(struct file *file, const char __user *buffer,
unsigned long count, void *data)
{
struct obd_device *obd = data;
struct mdt_device *mdt = mdt_dev(obd->obd_lu_dev);
int rc;
- char kernbuf[50], *tmp, *end, *errmsg;
+ char kernbuf[64], *tmp, *end, *errmsg;
unsigned long uid, gid;
int nouid, nogid;
ENTRY;
if (count >= sizeof(kernbuf)) {
errmsg = "string too long";
- GOTO(failed, rc = -EINVAL);
+ GOTO(failed_noprint, rc = -EINVAL);
}
if (copy_from_user(kernbuf, buffer, count)) {
errmsg = "bad address";
- GOTO(failed, rc = -EFAULT);
+ GOTO(failed_noprint, rc = -EFAULT);
}
kernbuf[count] = '\0';
nouid = nogid = 0;
- if (safe_strtoul(buffer, &tmp, &uid)) {
+ if (safe_strtoul(kernbuf, &tmp, &uid)) {
uid = mdt->mdt_squash_uid;
nouid = 1;
}
failed:
CWARN("%s: failed to set root_squash to \"%s\", %s: rc %d\n",
- mdt_obd_name(mdt), buffer, errmsg, rc);
+ mdt_obd_name(mdt), kernbuf, errmsg, rc);
+ RETURN(rc);
+failed_noprint:
+ CWARN("%s: failed to set root_squash due to %s: rc %d\n",
+ mdt_obd_name(mdt), errmsg, rc);
RETURN(rc);
}
return snprintf(page, count, "NONE\n");
}
-static int lprocfs_wr_nosquash_nids(struct file *file, const char *buffer,
+static int lprocfs_wr_nosquash_nids(struct file *file,
+ const char __user *buffer,
unsigned long count, void *data)
{
struct obd_device *obd = data;
mdt->mdt_som_conf ? "en" : "dis");
}
-static int lprocfs_wr_mdt_som(struct file *file, const char *buffer,
- unsigned long count, void *data)
+static int lprocfs_wr_mdt_som(struct file *file, const char __user *buffer,
+ unsigned long count, void *data)
{
struct obd_export *exp;
struct obd_device *obd = data;
return snprintf(page, count, "%u\n", mdt->mdt_enable_remote_dir);
}
-static int lprocfs_wr_enable_remote_dir(struct file *file, const char *buffer,
+static int lprocfs_wr_enable_remote_dir(struct file *file,
+ const char __user *buffer,
unsigned long count, void *data)
{
struct obd_device *obd = data;
}
static int lprocfs_wr_enable_remote_dir_gid(struct file *file,
- const char *buffer,
+ const char __user *buffer,
unsigned long count, void *data)
{
struct obd_device *obd = data;