* in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU General Public License
- * version 2 along with this program; If not, see [sun.com URL with a
- * copy of GPLv2].
+ * version 2 along with this program; If not, see
+ * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf
*
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
ENTRY;
err = copy_from_user(&hdr, (void *)arg, sizeof(hdr));
- if ( err )
+ if ( err )
RETURN(err);
if (hdr.ioc_version != OBD_IOCTL_VERSION) {
int obd_ioctl_popdata(void *arg, void *data, int len)
{
- int err;
-
+ int err;
+
err = copy_to_user(arg, data, len);
if (err)
err = -EFAULT;
int err = 0;
ENTRY;
- if (current->fsuid != 0)
+ /* Allow non-root access for OBD_IOC_PING_TARGET - used by lfs check */
+ if (!cfs_capable(CFS_CAP_SYS_ADMIN) && (cmd != OBD_IOC_PING_TARGET))
RETURN(err = -EACCES);
if ((cmd & 0xffffff00) == ((int)'T') << 8) /* ignore all tty ioctls */
RETURN(err = -ENOTTY);
BUILD_VERSION);
#else
return snprintf(page, count, "lustre: %s\nkernel: %s\nbuild: %s\n",
- LUSTRE_VERSION_STRING, "patchless", BUILD_VERSION);
+ LUSTRE_VERSION_STRING, "patchless_client",
+ BUILD_VERSION);
#endif
}
if (obd->obd_stopping)
continue;
- class_incref(obd);
+ class_incref(obd, __FUNCTION__, cfs_current());
spin_unlock(&obd_dev_lock);
if (obd_health_check(obd)) {
"device %s reported unhealthy\n",
obd->obd_name);
}
- class_decref(obd);
+ class_decref(obd, __FUNCTION__, cfs_current());
spin_lock(&obd_dev_lock);
}
spin_unlock(&obd_dev_lock);
}
static void *obd_device_list_seq_next(struct seq_file *p, void *v, loff_t *pos)
-{
+{
++*pos;
if (*pos >= class_devno_max())
return NULL;
ENTRY;
obd_sysctl_init();
- proc_lustre_root = lprocfs_register("lustre", proc_root_fs,
+ proc_lustre_root = lprocfs_register("fs/lustre", NULL,
lprocfs_base, NULL);
rc = lprocfs_seq_create(proc_lustre_root, "devices", 0444,
&obd_device_list_fops, NULL);