* GPL HEADER END
*/
/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
+ *
+ * Copyright (c) 2011, 2012, Whamcloud, Inc.
*/
/*
* This file is part of Lustre, http://www.lustre.org/
__u64 obd_max_pages = 0;
__u64 obd_max_alloc = 0;
struct lprocfs_stats *obd_memory = NULL;
-spinlock_t obd_updatemax_lock = SPIN_LOCK_UNLOCKED;
+cfs_spinlock_t obd_updatemax_lock = CFS_SPIN_LOCK_UNLOCKED;
/* refine later and change to seqlock or simlar from libcfs */
/* Debugging check only needed during development */
OBD_SET_CTXT_MAGIC(save);
save->fs = get_fs();
- LASSERT(atomic_read(&cfs_fs_pwd(current->fs)->d_count));
- LASSERT(atomic_read(&new_ctx->pwd->d_count));
+ LASSERT(cfs_atomic_read(&cfs_fs_pwd(current->fs)->d_count));
+ LASSERT(cfs_atomic_read(&new_ctx->pwd->d_count));
save->pwd = dget(cfs_fs_pwd(current->fs));
save->pwdmnt = mntget(cfs_fs_mnt(current->fs));
- save->luc.luc_umask = current->fs->umask;
+ save->luc.luc_umask = cfs_curproc_umask();
save->ngroups = current_cred()->group_info->ngroups;
LASSERT(save->pwd);
if (!file || !file->f_op || !file->f_op->fsync)
RETURN(-ENOSYS);
- RETURN(file->f_op->fsync(file, file->f_dentry, 0));
+ RETURN(cfs_do_fsync(file, 0));
}
EXPORT_SYMBOL(lustre_fsync);
}
EXPORT_SYMBOL(l_dentry_open);
-#ifdef HAVE_VFS_READDIR_U64_INO
static int l_filldir(void *__buf, const char *name, int namlen, loff_t offset,
u64 ino, unsigned int d_type)
-#else
-static int l_filldir(void *__buf, const char *name, int namlen, loff_t offset,
- ino_t ino, unsigned int d_type)
-#endif
{
struct l_linux_dirent *dirent;
struct l_readdir_callback *buf = (struct l_readdir_callback *)__buf;
if (!dirent)
return -ENOMEM;
- list_add_tail(&dirent->lld_list, buf->lrc_list);
+ cfs_list_add_tail(&dirent->lld_list, buf->lrc_list);
buf->lrc_dirent = dirent;
dirent->lld_ino = ino;
return 0;
}
-long l_readdir(struct file *file, struct list_head *dentry_list)
+long l_readdir(struct file *file, cfs_list_t *dentry_list)
{
struct l_linux_dirent *lastdirent;
struct l_readdir_callback buf;
EXPORT_SYMBOL(simple_truncate);
#ifdef LUSTRE_KERNEL_VERSION
-#ifndef HAVE_CLEAR_RDONLY_ON_PUT
-#error rdonly patchset must be updated [cfs bz11248]
-#endif
-void dev_set_rdonly(lvfs_sbdev_type dev);
-int dev_check_rdonly(lvfs_sbdev_type dev);
-
-void __lvfs_set_rdonly(lvfs_sbdev_type dev, lvfs_sbdev_type jdev)
+int __lvfs_set_rdonly(lvfs_sbdev_type dev, lvfs_sbdev_type jdev)
{
+#ifdef HAVE_DEV_SET_RDONLY
if (jdev && (jdev != dev)) {
CDEBUG(D_IOCTL | D_HA, "set journal dev %lx rdonly\n",
(long)jdev);
}
CDEBUG(D_IOCTL | D_HA, "set dev %lx rdonly\n", (long)dev);
dev_set_rdonly(dev);
+
+ return 0;
+#else
+ CERROR("DEV %lx CANNOT BE SET READONLY\n", (long)dev);
+
+ return -EOPNOTSUPP;
+#endif
}
+EXPORT_SYMBOL(__lvfs_set_rdonly);
int lvfs_check_rdonly(lvfs_sbdev_type dev)
{
+#ifdef HAVE_DEV_SET_RDONLY
return dev_check_rdonly(dev);
+#else
+ return 0;
+#endif
}
-
-EXPORT_SYMBOL(__lvfs_set_rdonly);
EXPORT_SYMBOL(lvfs_check_rdonly);
int lvfs_check_io_health(struct obd_device *obd, struct file *file)
max1 = obd_pages_sum();
max2 = obd_memory_sum();
- spin_lock(&obd_updatemax_lock);
+ cfs_spin_lock(&obd_updatemax_lock);
if (max1 > obd_max_pages)
obd_max_pages = max1;
if (max2 > obd_max_alloc)
obd_max_alloc = max2;
- spin_unlock(&obd_updatemax_lock);
+ cfs_spin_unlock(&obd_updatemax_lock);
}
{
__u64 ret;
- spin_lock(&obd_updatemax_lock);
+ cfs_spin_lock(&obd_updatemax_lock);
ret = obd_max_alloc;
- spin_unlock(&obd_updatemax_lock);
+ cfs_spin_unlock(&obd_updatemax_lock);
return ret;
}
{
__u64 ret;
- spin_lock(&obd_updatemax_lock);
+ cfs_spin_lock(&obd_updatemax_lock);
ret = obd_max_pages;
- spin_unlock(&obd_updatemax_lock);
+ cfs_spin_unlock(&obd_updatemax_lock);
return ret;
}
if (!lc)
RETURN(0);
do {
- centry = atomic_read(&lc->lc_cntl.la_entry);
+ centry = cfs_atomic_read(&lc->lc_cntl.la_entry);
switch (field) {
case LPROCFS_FIELDS_FLAGS_CONFIG:
default:
break;
};
- } while (centry != atomic_read(&lc->lc_cntl.la_entry) &&
- centry != atomic_read(&lc->lc_cntl.la_exit));
+ } while (centry != cfs_atomic_read(&lc->lc_cntl.la_entry) &&
+ centry != cfs_atomic_read(&lc->lc_cntl.la_exit));
RETURN(ret);
}