X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Flvfs%2Ffsfilt_reiserfs.c;h=5d9367924b2cf0bbad21ac2f2e5c061b0bd9b261;hb=4db03b974810789133e354b08029f0eb261fad5e;hp=b38ba4aa88d37a4b31607f3c55d826710a252ccb;hpb=090c677210ee2946d99c71412e4ff762bb300f4f;p=fs%2Flustre-release.git diff --git a/lustre/lvfs/fsfilt_reiserfs.c b/lustre/lvfs/fsfilt_reiserfs.c index b38ba4a..5d93679 100644 --- a/lustre/lvfs/fsfilt_reiserfs.c +++ b/lustre/lvfs/fsfilt_reiserfs.c @@ -1,26 +1,41 @@ /* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- * vim:expandtab:shiftwidth=8:tabstop=8: * - * lustre/lib/fsfilt_reiserfs.c - * Lustre filesystem abstraction routines + * GPL HEADER START * - * Copyright (C) 2002 Cluster File Systems, Inc. - * Author: Andreas Dilger + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * This file is part of Lustre, http://www.lustre.org. + * 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. * - * Lustre is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License 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). * - * Lustre 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 for more details. + * 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 * - * You should have received a copy of the GNU General Public License - * along with Lustre; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * 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) 2003, 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. + * + * lustre/lvfs/fsfilt_reiserfs.c + * + * Author: Andreas Dilger */ /* @@ -37,14 +52,11 @@ #include #include #include -#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)) #include #include -#endif -#include -#include -#include -#include +#include +#include +#include #include #include @@ -85,7 +97,7 @@ static int fsfilt_reiserfs_setattr(struct dentry *dentry, void *handle, struct inode *inode = dentry->d_inode; int rc; - lock_kernel(); + cfs_lock_kernel(); /* A _really_ horrible hack to avoid removing the data stored * in the block pointers; this is really the "small" stripe MD data. @@ -96,7 +108,7 @@ static int fsfilt_reiserfs_setattr(struct dentry *dentry, void *handle, if (iattr->ia_valid & ATTR_SIZE && !do_trunc) { /* ATTR_SIZE would invoke truncate: clear it */ iattr->ia_valid &= ~ATTR_SIZE; - inode->i_size = iattr->ia_size; + i_size_write(inode, iattr->ia_size); /* make sure _something_ gets set - so new inode * goes to disk (probably won't work over XFS @@ -119,13 +131,13 @@ static int fsfilt_reiserfs_setattr(struct dentry *dentry, void *handle, rc = inode_setattr(inode, iattr); } - unlock_kernel(); + cfs_unlock_kernel(); return rc; } static int fsfilt_reiserfs_set_md(struct inode *inode, void *handle, - void *lmm, int lmm_size) + void *lmm, int lmm_size, const char *name) { /* XXX write stripe data into MDS file itself */ CERROR("not implemented yet\n"); @@ -133,10 +145,11 @@ static int fsfilt_reiserfs_set_md(struct inode *inode, void *handle, return -ENOSYS; } -static int fsfilt_reiserfs_get_md(struct inode *inode, void *lmm, int lmm_size) +static int fsfilt_reiserfs_get_md(struct inode *inode, void *lmm, int lmm_size, + const char *name) { if (lmm == NULL) - return inode->i_size; + return i_size_read(inode); CERROR("not implemented yet\n"); return -ENOSYS; @@ -154,9 +167,9 @@ static int fsfilt_reiserfs_add_journal_cb(struct obd_device *obd, { static unsigned long next = 0; - if (time_after(jiffies, next)) { + if (cfs_time_after(jiffies, next)) { CERROR("no journal callback kernel patch, faking it...\n"); - next = jiffies + 300 * HZ; + next = jiffies + 300 * CFS_HZ; } cb_func(obd, last_rcvd, cb_data, 0); @@ -171,9 +184,7 @@ static int fsfilt_reiserfs_statfs(struct super_block *sb, int rc; memset(&sfs, 0, sizeof(sfs)); - - rc = sb->s_op->statfs(sb, &sfs); - + rc = ll_do_statfs(sb, &sfs); statfs_pack(osfs, &sfs); return rc; } @@ -201,7 +212,7 @@ static int fsfilt_reiserfs_get_op_len(int op, struct fsfilt_objinfo *fso, int i; int needed = MAX_HEIGHT; struct super_block *sb = fso->fso_dentry->d_inode->i_sb; - int blockpp = 1 << (PAGE_CACHE_SHIFT - sb->s_blocksize_bits); + int blockpp = 1 << (CFS_PAGE_SHIFT - sb->s_blocksize_bits); for (i = 0; i < op; i++, fso++) { int nblocks = fso->fso_bufcnt * blockpp; @@ -213,19 +224,19 @@ static int fsfilt_reiserfs_get_op_len(int op, struct fsfilt_objinfo *fso, return 0; } static struct fsfilt_operations fsfilt_reiserfs_ops = { - fs_type: "reiserfs", - fs_owner: THIS_MODULE, - fs_start: fsfilt_reiserfs_start, - fs_brw_start: fsfilt_reiserfs_brw_start, - fs_commit: fsfilt_reiserfs_commit, - fs_setattr: fsfilt_reiserfs_setattr, - fs_set_md: fsfilt_reiserfs_set_md, - fs_get_md: fsfilt_reiserfs_get_md, - fs_readpage: fsfilt_reiserfs_readpage, - fs_add_journal_cb: fsfilt_reiserfs_add_journal_cb, - fs_statfs: fsfilt_reiserfs_statfs, - fs_sync: fsfilt_reiserfs_sync, - fs_get_op_len: fsfilt_reiserfs_get_op_len, + .fs_type = "reiserfs", + .fs_owner = THIS_MODULE, + .fs_start = fsfilt_reiserfs_start, + .fs_brw_start = fsfilt_reiserfs_brw_start, + .fs_commit = fsfilt_reiserfs_commit, + .fs_setattr = fsfilt_reiserfs_setattr, + .fs_set_md = fsfilt_reiserfs_set_md, + .fs_get_md = fsfilt_reiserfs_get_md, + .fs_readpage = fsfilt_reiserfs_readpage, + .fs_add_journal_cb = fsfilt_reiserfs_add_journal_cb, + .fs_statfs = fsfilt_reiserfs_statfs, + .fs_sync = fsfilt_reiserfs_sync, + .fs_get_op_len = fsfilt_reiserfs_get_op_len, }; static int __init fsfilt_reiserfs_init(void) @@ -238,7 +249,7 @@ static void __exit fsfilt_reiserfs_exit(void) fsfilt_unregister_ops(&fsfilt_reiserfs_ops); } -MODULE_AUTHOR("Cluster File Systems, Inc. "); +MODULE_AUTHOR("Sun Microsystems, Inc. "); MODULE_DESCRIPTION("Lustre reiserfs Filesystem Helper v0.1"); MODULE_LICENSE("GPL");