Whamcloud - gitweb
b=21454 Disable cl_page_in_io check for append write.
[fs/lustre-release.git] / lustre / obdclass / linux / linux-module.c
index 137449c..5c7a38d 100644 (file)
@@ -16,8 +16,8 @@
  * 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
@@ -99,7 +99,7 @@ int obd_ioctl_getdata(char **buf, int *len, void *arg)
         ENTRY;
 
         err = copy_from_user(&hdr, (void *)arg, sizeof(hdr));
-        if ( err ) 
+        if ( err )
                 RETURN(err);
 
         if (hdr.ioc_version != OBD_IOCTL_VERSION) {
@@ -167,8 +167,8 @@ int obd_ioctl_getdata(char **buf, int *len, void *arg)
 
 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;
@@ -204,7 +204,8 @@ static int obd_class_ioctl(struct inode *inode, struct file *filp,
         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);
@@ -245,7 +246,8 @@ int obd_proc_read_version(char *page, char **start, off_t off, int count,
                         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
 }
 
@@ -298,7 +300,7 @@ static int obd_proc_read_health(char *page, char **start, off_t off,
                 if (obd->obd_stopping)
                         continue;
 
-                class_incref(obd);
+                class_incref(obd, __FUNCTION__, cfs_current());
                 spin_unlock(&obd_dev_lock);
 
                 if (obd_health_check(obd)) {
@@ -306,7 +308,7 @@ static int obd_proc_read_health(char *page, char **start, off_t off,
                                        "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);
@@ -345,7 +347,7 @@ static void obd_device_list_seq_stop(struct seq_file *p, void *v)
 }
 
 static void *obd_device_list_seq_next(struct seq_file *p, void *v, loff_t *pos)
-{      
+{
         ++*pos;
         if (*pos >= class_devno_max())
                 return NULL;
@@ -418,7 +420,7 @@ int class_procfs_init(void)
         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);