Whamcloud - gitweb
LU-3963 libcfs: remove proc handler wrappers
[fs/lustre-release.git] / libcfs / libcfs / linux / linux-fs.c
index d5d50e7..a456b65 100644 (file)
@@ -1,6 +1,4 @@
-/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
- * vim:expandtab:shiftwidth=8:tabstop=8:
- *
+/*
  * GPL HEADER START
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -26,7 +24,7 @@
  * GPL HEADER END
  */
 /*
- * Copyright  2008 Sun Microsystems, Inc. All rights reserved
+ * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
  * Use is subject to license terms.
  */
 /*
 
 #include <libcfs/libcfs.h>
 
-cfs_file_t *
-cfs_filp_open (const char *name, int flags, int mode, int *err)
-{
-       /* XXX
-        * Maybe we need to handle flags and mode in the future
-        */
-       cfs_file_t      *filp = NULL;
-
-       filp = filp_open(name, flags, mode);
-       if (IS_ERR(filp)) {
-               int rc;
-
-               rc = PTR_ERR(filp);
-                printk(KERN_ERR "LustreError: can't open %s file: err %d\n",
-                       name, rc);
-               if (err)
-                       *err = rc;
-               filp = NULL;
-       }
-       return filp;
-}
-
 /* write a userspace buffer to disk.
  * NOTE: this returns 0 on success, not the number of bytes written. */
 ssize_t
-cfs_user_write (cfs_file_t *filp, const char *buf, size_t count, loff_t *offset)
+filp_user_write(struct file *filp, const void *buf, size_t count,
+               loff_t *offset)
 {
        mm_segment_t fs;
        ssize_t size = 0;
 
        fs = get_fs();
        set_fs(KERNEL_DS);
-       while (count > 0) {
-               size = filp->f_op->write(filp, (char *)buf, count, offset);
+       while ((ssize_t)count > 0) {
+               size = vfs_write(filp, (const void __user *)buf, count, offset);
                if (size < 0)
                        break;
                count -= size;
+                buf += size;
                size = 0;
        }
        set_fs(fs);
 
        return size;
 }
-
-#if !(CFS_O_CREAT == O_CREAT && CFS_O_EXCL == O_EXCL &&        \
-     CFS_O_TRUNC == O_TRUNC && CFS_O_APPEND == O_APPEND &&\
-     CFS_O_NONBLOCK == O_NONBLOCK && CFS_O_NDELAY == O_NDELAY &&\
-     CFS_O_SYNC == O_SYNC && CFS_O_ASYNC == FASYNC &&\
-     CFS_O_DIRECT == O_DIRECT && CFS_O_LARGEFILE == O_LARGEFILE &&\
-     CFS_O_DIRECTORY == O_DIRECTORY && CFS_O_NOFOLLOW == O_NOFOLLOW)
-
-int cfs_oflags2univ(int flags)
-{
-       int f; 
-       
-       f = flags & O_ACCMODE;
-       f |= (flags & O_CREAT) ? CFS_O_CREAT: 0;
-       f |= (flags & O_EXCL) ? CFS_O_EXCL: 0;
-       f |= (flags & O_NOCTTY) ? CFS_O_NOCTTY: 0;
-       f |= (flags & O_TRUNC) ? CFS_O_TRUNC: 0;
-       f |= (flags & O_APPEND) ? CFS_O_APPEND: 0;
-       f |= (flags & O_NONBLOCK) ? CFS_O_NONBLOCK: 0;
-       f |= (flags & O_SYNC)? CFS_O_SYNC: 0;
-       f |= (flags & FASYNC)? CFS_O_ASYNC: 0;
-       f |= (flags & O_DIRECTORY)? CFS_O_DIRECTORY: 0;
-       f |= (flags & O_DIRECT)? CFS_O_DIRECT: 0;
-       f |= (flags & O_LARGEFILE)? CFS_O_LARGEFILE: 0;
-       f |= (flags & O_NOFOLLOW)? CFS_O_NOFOLLOW: 0;
-       f |= (flags & O_NOATIME)? CFS_O_NOATIME: 0;
-       return f;
-}
-#else
-
-int cfs_oflags2univ(int flags)
-{
-       return (flags);
-}
-#endif
-
-/* 
- * XXX Liang: we don't need cfs_univ2oflags() now.
- */
-int cfs_univ2oflags(int flags)
-{
-       return (flags);
-}
-
-EXPORT_SYMBOL(cfs_filp_open);
-EXPORT_SYMBOL(cfs_user_write);
-EXPORT_SYMBOL(cfs_oflags2univ);
-EXPORT_SYMBOL(cfs_univ2oflags);
+EXPORT_SYMBOL(filp_user_write);