filp_user_write() is open coded in libcfs_kkuc_msg_put(). All other functions/macros have no user at all. So we can remove the file. Signed-off-by: Peng Tao <tao.peng@xxxxxxx> Signed-off-by: Andreas Dilger <andreas.dilger@xxxxxxxxx> --- .../staging/lustre/include/linux/libcfs/libcfs.h | 29 ----- .../lustre/include/linux/libcfs/linux/linux-fs.h | 3 - drivers/staging/lustre/lustre/libcfs/Makefile | 2 +- .../lustre/lustre/libcfs/kernel_user_comm.c | 18 +++- .../staging/lustre/lustre/libcfs/linux/linux-fs.c | 113 -------------------- drivers/staging/lustre/lustre/mdc/mdc_lib.c | 2 +- 6 files changed, 16 insertions(+), 151 deletions(-) delete mode 100644 drivers/staging/lustre/lustre/libcfs/linux/linux-fs.c diff --git a/drivers/staging/lustre/include/linux/libcfs/libcfs.h b/drivers/staging/lustre/include/linux/libcfs/libcfs.h index 6dd5a7d..7673aa5 100644 --- a/drivers/staging/lustre/include/linux/libcfs/libcfs.h +++ b/drivers/staging/lustre/include/linux/libcfs/libcfs.h @@ -213,35 +213,6 @@ void cfs_stack_trace_fill(struct cfs_stack_trace *trace); */ void *cfs_stack_trace_frame(struct cfs_stack_trace *trace, int frame_no); -#ifndef O_NOACCESS -#define O_NOACCESS O_NONBLOCK -#endif - -/* - * Universal open flags. - */ -#define CFS_O_NOACCESS 0003 -#define CFS_O_ACCMODE CFS_O_NOACCESS -#define CFS_O_CREAT 0100 -#define CFS_O_EXCL 0200 -#define CFS_O_NOCTTY 0400 -#define CFS_O_TRUNC 01000 -#define CFS_O_APPEND 02000 -#define CFS_O_NONBLOCK 04000 -#define CFS_O_NDELAY CFS_O_NONBLOCK -#define CFS_O_SYNC 010000 -#define CFS_O_ASYNC 020000 -#define CFS_O_DIRECT 040000 -#define CFS_O_LARGEFILE 0100000 -#define CFS_O_DIRECTORY 0200000 -#define CFS_O_NOFOLLOW 0400000 -#define CFS_O_NOATIME 01000000 - -/* convert local open flags to universal open flags */ -int cfs_oflags2univ(int flags); -/* convert universal open flags to local open flags */ -int cfs_univ2oflags(int flags); - /* * Random number handling */ diff --git a/drivers/staging/lustre/include/linux/libcfs/linux/linux-fs.h b/drivers/staging/lustre/include/linux/libcfs/linux/linux-fs.h index 90ff47a..eebf138 100644 --- a/drivers/staging/lustre/include/linux/libcfs/linux/linux-fs.h +++ b/drivers/staging/lustre/include/linux/libcfs/linux/linux-fs.h @@ -78,9 +78,6 @@ #define flock_end(fl) ((fl)->fl_end) #define flock_set_end(fl, end) do { (fl)->fl_end = (end); } while (0) -ssize_t filp_user_write(struct file *filp, const void *buf, size_t count, - loff_t *offset); - #ifndef IFSHIFT #define IFSHIFT 12 #endif diff --git a/drivers/staging/lustre/lustre/libcfs/Makefile b/drivers/staging/lustre/lustre/libcfs/Makefile index d64a3d0..224f1b0 100644 --- a/drivers/staging/lustre/lustre/libcfs/Makefile +++ b/drivers/staging/lustre/lustre/libcfs/Makefile @@ -2,7 +2,7 @@ obj-$(CONFIG_LUSTRE_FS) += libcfs.o libcfs-linux-objs := linux-tracefile.o linux-debug.o libcfs-linux-objs += linux-prim.o linux-mem.o linux-cpu.o -libcfs-linux-objs += linux-fs.o linux-sync.o linux-tcpip.o +libcfs-linux-objs += linux-sync.o linux-tcpip.o libcfs-linux-objs += linux-proc.o linux-curproc.o libcfs-linux-objs += linux-utils.o linux-module.o libcfs-linux-objs += linux-crypto.o linux-crypto-crc32.o diff --git a/drivers/staging/lustre/lustre/libcfs/kernel_user_comm.c b/drivers/staging/lustre/lustre/libcfs/kernel_user_comm.c index c152223..8084ada 100644 --- a/drivers/staging/lustre/lustre/libcfs/kernel_user_comm.c +++ b/drivers/staging/lustre/lustre/libcfs/kernel_user_comm.c @@ -155,6 +155,9 @@ int libcfs_ukuc_msg_get(lustre_kernelcomm *link, char *buf, int maxsize, int libcfs_kkuc_msg_put(struct file *filp, void *payload) { struct kuc_hdr *kuch = (struct kuc_hdr *)payload; + ssize_t count = kuch->kuc_msglen; + loff_t offset = 0; + mm_segment_t fs; int rc = -ENOSYS; if (filp == NULL || IS_ERR(filp)) @@ -165,11 +168,18 @@ int libcfs_kkuc_msg_put(struct file *filp, void *payload) return -ENOSYS; } - { - loff_t offset = 0; - rc = filp_user_write(filp, payload, kuch->kuc_msglen, - &offset); + fs = get_fs(); + set_fs(KERNEL_DS); + while ((ssize_t)count > 0) { + rc = vfs_write(filp, (const void __user *)payload, + count, &offset); + if (rc < 0) + break; + count -= rc; + payload += rc; + rc = 0; } + set_fs(fs); if (rc < 0) CWARN("message send failed (%d)\n", rc); diff --git a/drivers/staging/lustre/lustre/libcfs/linux/linux-fs.c b/drivers/staging/lustre/lustre/libcfs/linux/linux-fs.c deleted file mode 100644 index cb96969..0000000 --- a/drivers/staging/lustre/lustre/libcfs/linux/linux-fs.c +++ /dev/null @@ -1,113 +0,0 @@ -/* - * GPL HEADER START - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 only, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License version 2 for more details (a copy is included - * 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 - * 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 - * have any questions. - * - * GPL HEADER END - */ -/* - * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. - * Use is subject to license terms. - */ -/* - * This file is part of Lustre, http://www.lustre.org/ - * Lustre is a trademark of Sun Microsystems, Inc. - */ - -# define DEBUG_SUBSYSTEM S_LNET - -#include <linux/fs.h> -#include <linux/kdev_t.h> -#include <linux/ctype.h> -#include <asm/uaccess.h> - -#include <linux/libcfs/libcfs.h> - -/* write a userspace buffer to disk. - * NOTE: this returns 0 on success, not the number of bytes written. */ -ssize_t -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 ((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; -} -EXPORT_SYMBOL(filp_user_write); - -#if !(CFS_O_CREAT == O_CREAT && CFS_O_EXCL == O_EXCL && \ - CFS_O_NOACCESS == O_NOACCESS &&\ - 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_NOACCESS; - 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 -EXPORT_SYMBOL(cfs_oflags2univ); - -/* - * XXX Liang: we don't need cfs_univ2oflags() now. - */ -int cfs_univ2oflags(int flags) -{ - return (flags); -} -EXPORT_SYMBOL(cfs_univ2oflags); diff --git a/drivers/staging/lustre/lustre/mdc/mdc_lib.c b/drivers/staging/lustre/lustre/mdc/mdc_lib.c index 05c6968..e789aed 100644 --- a/drivers/staging/lustre/lustre/mdc/mdc_lib.c +++ b/drivers/staging/lustre/lustre/mdc/mdc_lib.c @@ -199,7 +199,7 @@ static __u64 mds_pack_open_flags(__u32 flags, __u32 mode) if (flags & O_LOV_DELAY_CREATE) cr_flags |= MDS_OPEN_DELAY_CREATE; - if ((flags & O_NOACCESS) || (flags & O_NONBLOCK)) + if (flags & O_NONBLOCK) cr_flags |= MDS_OPEN_NORESTORE; return cr_flags; -- 1.7.9.5 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel