X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=libcfs%2Finclude%2Flibcfs%2Flinux%2Flinux-fs.h;h=fedaf602717fc471abdf3dd612abaea445644473;hb=4a8f90cfdf8868d25f14b02214e51e7423d70160;hp=b5201a2db4a91c9ba1bb07a17a85c36effe030ae;hpb=70e80ade90af09300396706b8910e196a7928520;p=fs%2Flustre-release.git diff --git a/libcfs/include/libcfs/linux/linux-fs.h b/libcfs/include/libcfs/linux/linux-fs.h index b5201a2..fedaf60 100644 --- a/libcfs/include/libcfs/linux/linux-fs.h +++ b/libcfs/include/libcfs/linux/linux-fs.h @@ -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. @@ -16,8 +14,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 @@ -26,8 +24,10 @@ * 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. + * + * Copyright (c) 2012, 2014, Intel Corporation. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -45,54 +45,51 @@ #error Do not #include this file directly. #include instead #endif -#ifdef __KERNEL__ +#ifndef __KERNEL__ +#error This include is only for kernel use. +#endif + #include #include #include -#else /* !__KERNEL__ */ -#include -#include -#include -#include -#include -#include -#include -#include -#endif /* __KERNEL__ */ - -typedef struct file cfs_file_t; -typedef struct dentry cfs_dentry_t; -typedef struct dirent64 cfs_dirent_t; +#include +#include -#ifdef __KERNEL__ -#define cfs_filp_size(f) (i_size_read((f)->f_dentry->d_inode)) -#define cfs_filp_poff(f) (&(f)->f_pos) - -/* - * XXX Do we need to parse flags and mode in cfs_filp_open? - */ -cfs_file_t *cfs_filp_open (const char *name, int flags, int mode, int *err); -#define cfs_filp_close(f) filp_close(f, NULL) -#define cfs_filp_read(fp, buf, size, pos) (fp)->f_op->read((fp), (buf), (size), pos) -#define cfs_filp_write(fp, buf, size, pos) (fp)->f_op->write((fp), (buf), (size), pos) -#define cfs_filp_fsync(fp) (fp)->f_op->fsync((fp), (fp)->f_dentry, 1) - -#define cfs_get_file(f) get_file(f) -#define cfs_put_file(f) fput(f) -#define cfs_file_count(f) file_count(f) +#if defined(HAVE_FILE_FSYNC_4ARGS) || defined(HAVE_FILE_FSYNC_2ARGS) +#define ll_vfs_fsync_range(fp, start, end, datasync) \ + vfs_fsync_range(fp, start, end, datasync) +#else +#define ll_vfs_fsync_range(fp, start, end, datasync) \ + vfs_fsync_range(fp, (fp)->f_path.dentry, start, end, datasync) +#endif -typedef struct file_lock cfs_flock_t; -#define cfs_flock_type(fl) ((fl)->fl_type) -#define cfs_flock_set_type(fl, type) do { (fl)->fl_type = (type); } while(0) -#define cfs_flock_pid(fl) ((fl)->fl_pid) -#define cfs_flock_set_pid(fl, pid) do { (fl)->fl_pid = (pid); } while(0) -#define cfs_flock_start(fl) ((fl)->fl_start) -#define cfs_flock_set_start(fl, start) do { (fl)->fl_start = (start); } while(0) -#define cfs_flock_end(fl) ((fl)->fl_end) -#define cfs_flock_set_end(fl, end) do { (fl)->fl_end = (end); } while(0) +#define flock_type(fl) ((fl)->fl_type) +#define flock_set_type(fl, type) do { (fl)->fl_type = (type); } while (0) +#define flock_pid(fl) ((fl)->fl_pid) +#define flock_set_pid(fl, pid) do { (fl)->fl_pid = (pid); } while (0) +#define flock_start(fl) ((fl)->fl_start) +#define flock_set_start(fl, st) do { (fl)->fl_start = (st); } while (0) +#define flock_end(fl) ((fl)->fl_end) +#define flock_set_end(fl, end) do { (fl)->fl_end = (end); } while (0) -ssize_t cfs_user_write (cfs_file_t *filp, const char *buf, size_t count, loff_t *offset); +#ifndef IFSHIFT +#define IFSHIFT 12 +#endif +#ifndef IFTODT +#define IFTODT(type) (((type) & S_IFMT) >> IFSHIFT) +#endif +#ifndef DTTOIF +#define DTTOIF(dirtype) ((dirtype) << IFSHIFT) #endif +#ifndef HAVE_POSIXACL_USER_NS +/* + * Mask out &init_user_ns so we don't jump + * through hoops to define it somehow only + * to have it ignored anyway. + */ +#define posix_acl_from_xattr(a,b,c) posix_acl_from_xattr(b,c) +#define posix_acl_to_xattr(a,b,c,d) posix_acl_to_xattr(b,c,d) +#endif #endif