Commit 7d5ed06b authored by Peng Tao's avatar Peng Tao Committed by Greg Kroah-Hartman
Browse files

staging/lustre: clean up and remove libcfs/linux/linux-fs.c



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: default avatarPeng Tao <tao.peng@emc.com>
Signed-off-by: default avatarAndreas Dilger <andreas.dilger@intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 69d19388
Loading
Loading
Loading
Loading
+0 −29
Original line number Diff line number Diff line
@@ -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
 */
+0 −3
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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
+14 −4
Original line number Diff line number Diff line
@@ -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);
+0 −113
Original line number Diff line number Diff line
/*
 * 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);
Loading