summaryrefslogtreecommitdiff
path: root/ANDROID_3.4.5/arch/s390/hypfs/hypfs_dbfs.c
diff options
context:
space:
mode:
authorSrikant Patnaik2015-01-11 12:28:04 +0530
committerSrikant Patnaik2015-01-11 12:28:04 +0530
commit871480933a1c28f8a9fed4c4d34d06c439a7a422 (patch)
tree8718f573808810c2a1e8cb8fb6ac469093ca2784 /ANDROID_3.4.5/arch/s390/hypfs/hypfs_dbfs.c
parent9d40ac5867b9aefe0722bc1f110b965ff294d30d (diff)
downloadFOSSEE-netbook-kernel-source-871480933a1c28f8a9fed4c4d34d06c439a7a422.tar.gz
FOSSEE-netbook-kernel-source-871480933a1c28f8a9fed4c4d34d06c439a7a422.tar.bz2
FOSSEE-netbook-kernel-source-871480933a1c28f8a9fed4c4d34d06c439a7a422.zip
Moved, renamed, and deleted files
The original directory structure was scattered and unorganized. Changes are basically to make it look like kernel structure.
Diffstat (limited to 'ANDROID_3.4.5/arch/s390/hypfs/hypfs_dbfs.c')
-rw-r--r--ANDROID_3.4.5/arch/s390/hypfs/hypfs_dbfs.c116
1 files changed, 0 insertions, 116 deletions
diff --git a/ANDROID_3.4.5/arch/s390/hypfs/hypfs_dbfs.c b/ANDROID_3.4.5/arch/s390/hypfs/hypfs_dbfs.c
deleted file mode 100644
index b478013b..00000000
--- a/ANDROID_3.4.5/arch/s390/hypfs/hypfs_dbfs.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Hypervisor filesystem for Linux on s390 - debugfs interface
- *
- * Copyright (C) IBM Corp. 2010
- * Author(s): Michael Holzheu <holzheu@linux.vnet.ibm.com>
- */
-
-#include <linux/slab.h>
-#include "hypfs.h"
-
-static struct dentry *dbfs_dir;
-
-static struct hypfs_dbfs_data *hypfs_dbfs_data_alloc(struct hypfs_dbfs_file *f)
-{
- struct hypfs_dbfs_data *data;
-
- data = kmalloc(sizeof(*data), GFP_KERNEL);
- if (!data)
- return NULL;
- kref_init(&data->kref);
- data->dbfs_file = f;
- return data;
-}
-
-static void hypfs_dbfs_data_free(struct kref *kref)
-{
- struct hypfs_dbfs_data *data;
-
- data = container_of(kref, struct hypfs_dbfs_data, kref);
- data->dbfs_file->data_free(data->buf_free_ptr);
- kfree(data);
-}
-
-static void data_free_delayed(struct work_struct *work)
-{
- struct hypfs_dbfs_data *data;
- struct hypfs_dbfs_file *df;
-
- df = container_of(work, struct hypfs_dbfs_file, data_free_work.work);
- mutex_lock(&df->lock);
- data = df->data;
- df->data = NULL;
- mutex_unlock(&df->lock);
- kref_put(&data->kref, hypfs_dbfs_data_free);
-}
-
-static ssize_t dbfs_read(struct file *file, char __user *buf,
- size_t size, loff_t *ppos)
-{
- struct hypfs_dbfs_data *data;
- struct hypfs_dbfs_file *df;
- ssize_t rc;
-
- if (*ppos != 0)
- return 0;
-
- df = file->f_path.dentry->d_inode->i_private;
- mutex_lock(&df->lock);
- if (!df->data) {
- data = hypfs_dbfs_data_alloc(df);
- if (!data) {
- mutex_unlock(&df->lock);
- return -ENOMEM;
- }
- rc = df->data_create(&data->buf, &data->buf_free_ptr,
- &data->size);
- if (rc) {
- mutex_unlock(&df->lock);
- kfree(data);
- return rc;
- }
- df->data = data;
- schedule_delayed_work(&df->data_free_work, HZ);
- }
- data = df->data;
- kref_get(&data->kref);
- mutex_unlock(&df->lock);
-
- rc = simple_read_from_buffer(buf, size, ppos, data->buf, data->size);
- kref_put(&data->kref, hypfs_dbfs_data_free);
- return rc;
-}
-
-static const struct file_operations dbfs_ops = {
- .read = dbfs_read,
- .llseek = no_llseek,
-};
-
-int hypfs_dbfs_create_file(struct hypfs_dbfs_file *df)
-{
- df->dentry = debugfs_create_file(df->name, 0400, dbfs_dir, df,
- &dbfs_ops);
- if (IS_ERR(df->dentry))
- return PTR_ERR(df->dentry);
- mutex_init(&df->lock);
- INIT_DELAYED_WORK(&df->data_free_work, data_free_delayed);
- return 0;
-}
-
-void hypfs_dbfs_remove_file(struct hypfs_dbfs_file *df)
-{
- debugfs_remove(df->dentry);
-}
-
-int hypfs_dbfs_init(void)
-{
- dbfs_dir = debugfs_create_dir("s390_hypfs", NULL);
- if (IS_ERR(dbfs_dir))
- return PTR_ERR(dbfs_dir);
- return 0;
-}
-
-void hypfs_dbfs_exit(void)
-{
- debugfs_remove(dbfs_dir);
-}