WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] Filesystem implementations may need optio

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] Filesystem implementations may need optional arguments in terms of
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Tue, 20 Feb 2007 03:50:06 -0800
Delivery-date: Tue, 20 Feb 2007 03:49:55 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User john.levon@xxxxxxx
# Date 1171946682 28800
# Node ID 89ca591a2c211caf487d20261692ef4a40170cf7
# Parent  b83cfb117bddc1f44be53bde49d86b5075bdaa2a
Filesystem implementations may need optional arguments in terms of
what to mount. Add an options string to the libfsimage API.

Signed-off-by: John Levon <john.levon@xxxxxxx>
---
 tools/libfsimage/common/fsimage.c         |    4 ++--
 tools/libfsimage/common/fsimage.h         |    2 +-
 tools/libfsimage/common/fsimage_grub.c    |    4 ++--
 tools/libfsimage/common/fsimage_grub.h    |    2 +-
 tools/libfsimage/common/fsimage_plugin.c  |    4 ++--
 tools/libfsimage/common/fsimage_plugin.h  |    2 +-
 tools/libfsimage/common/fsimage_priv.h    |    2 +-
 tools/libfsimage/ext2fs-lib/ext2fs-lib.c  |    2 +-
 tools/libfsimage/ext2fs/fsys_ext2fs.c     |    2 +-
 tools/libfsimage/reiserfs/fsys_reiserfs.c |    2 +-
 tools/libfsimage/ufs/fsys_ufs.c           |    2 +-
 tools/pygrub/src/fsimage/fsimage.c        |   14 ++++++++------
 12 files changed, 22 insertions(+), 20 deletions(-)

diff -r b83cfb117bdd -r 89ca591a2c21 tools/libfsimage/common/fsimage.c
--- a/tools/libfsimage/common/fsimage.c Mon Feb 19 22:50:07 2007 +0000
+++ b/tools/libfsimage/common/fsimage.c Mon Feb 19 20:44:42 2007 -0800
@@ -36,7 +36,7 @@
 
 static pthread_mutex_t fsi_lock = PTHREAD_MUTEX_INITIALIZER;
 
-fsi_t *fsi_open_fsimage(const char *path, uint64_t off)
+fsi_t *fsi_open_fsimage(const char *path, uint64_t off, const char *options)
 {
        fsi_t *fsi = NULL;
        int fd;
@@ -53,7 +53,7 @@ fsi_t *fsi_open_fsimage(const char *path
        fsi->f_data = NULL;
 
        pthread_mutex_lock(&fsi_lock);
-       err = find_plugin(fsi, path);
+       err = find_plugin(fsi, path, options);
        pthread_mutex_unlock(&fsi_lock);
        if (err != 0)
                goto fail;
diff -r b83cfb117bdd -r 89ca591a2c21 tools/libfsimage/common/fsimage.h
--- a/tools/libfsimage/common/fsimage.h Mon Feb 19 22:50:07 2007 +0000
+++ b/tools/libfsimage/common/fsimage.h Mon Feb 19 20:44:42 2007 -0800
@@ -35,7 +35,7 @@ typedef struct fsi fsi_t;
 typedef struct fsi fsi_t;
 typedef struct fsi_file fsi_file_t;
 
-fsi_t *fsi_open_fsimage(const char *, uint64_t);
+fsi_t *fsi_open_fsimage(const char *, uint64_t, const char *);
 void fsi_close_fsimage(fsi_t *);
 
 int fsi_file_exists(fsi_t *, const char *);
diff -r b83cfb117bdd -r 89ca591a2c21 tools/libfsimage/common/fsimage_grub.c
--- a/tools/libfsimage/common/fsimage_grub.c    Mon Feb 19 22:50:07 2007 +0000
+++ b/tools/libfsimage/common/fsimage_grub.c    Mon Feb 19 20:44:42 2007 -0800
@@ -161,7 +161,7 @@ fsig_substring(const char *s1, const cha
 }
 
 static int
-fsig_mount(fsi_t *fsi, const char *path)
+fsig_mount(fsi_t *fsi, const char *path, const char *options)
 {
        fsig_plugin_ops_t *ops = fsi->f_plugin->fp_data;
        fsi_file_t *ffi;
@@ -178,7 +178,7 @@ fsig_mount(fsi_t *fsi, const char *path)
 
        bzero(fsi->f_data, sizeof (fsig_data_t));
 
-       if (!ops->fpo_mount(ffi)) {
+       if (!ops->fpo_mount(ffi, options)) {
                fsip_file_free(ffi);
                free(fsi->f_data);
                fsi->f_data = NULL;
diff -r b83cfb117bdd -r 89ca591a2c21 tools/libfsimage/common/fsimage_grub.h
--- a/tools/libfsimage/common/fsimage_grub.h    Mon Feb 19 22:50:07 2007 +0000
+++ b/tools/libfsimage/common/fsimage_grub.h    Mon Feb 19 20:44:42 2007 -0800
@@ -38,7 +38,7 @@ extern C {
 
 typedef struct fsig_plugin_ops {
        int fpo_version;
-       int (*fpo_mount)(fsi_file_t *);
+       int (*fpo_mount)(fsi_file_t *, const char *);
        int (*fpo_dir)(fsi_file_t *, char *);
        int (*fpo_read)(fsi_file_t *, char *, int);
 } fsig_plugin_ops_t;
diff -r b83cfb117bdd -r 89ca591a2c21 tools/libfsimage/common/fsimage_plugin.c
--- a/tools/libfsimage/common/fsimage_plugin.c  Mon Feb 19 22:50:07 2007 +0000
+++ b/tools/libfsimage/common/fsimage_plugin.c  Mon Feb 19 20:44:42 2007 -0800
@@ -185,7 +185,7 @@ fail:
        return (ret);
 }
 
-int find_plugin(fsi_t *fsi, const char *path)
+int find_plugin(fsi_t *fsi, const char *path, const char *options)
 {
        fsi_plugin_t *fp;
        int ret = 0;
@@ -195,7 +195,7 @@ int find_plugin(fsi_t *fsi, const char *
 
        for (fp = plugins; fp != NULL; fp = fp->fp_next) {
                fsi->f_plugin = fp;
-               if (fp->fp_ops->fpo_mount(fsi, path) == 0)
+               if (fp->fp_ops->fpo_mount(fsi, path, options) == 0)
                        goto out;
        }
 
diff -r b83cfb117bdd -r 89ca591a2c21 tools/libfsimage/common/fsimage_plugin.h
--- a/tools/libfsimage/common/fsimage_plugin.h  Mon Feb 19 22:50:07 2007 +0000
+++ b/tools/libfsimage/common/fsimage_plugin.h  Mon Feb 19 20:44:42 2007 -0800
@@ -38,7 +38,7 @@ typedef struct fsi_plugin fsi_plugin_t;
 
 typedef struct fsi_plugin_ops {
        int fpo_version;
-       int (*fpo_mount)(fsi_t *, const char *);
+       int (*fpo_mount)(fsi_t *, const char *, const char *);
        int (*fpo_umount)(fsi_t *);
        fsi_file_t *(*fpo_open)(fsi_t *, const char *);
        ssize_t (*fpo_read)(fsi_file_t *, void *, size_t);
diff -r b83cfb117bdd -r 89ca591a2c21 tools/libfsimage/common/fsimage_priv.h
--- a/tools/libfsimage/common/fsimage_priv.h    Mon Feb 19 22:50:07 2007 +0000
+++ b/tools/libfsimage/common/fsimage_priv.h    Mon Feb 19 20:44:42 2007 -0800
@@ -53,7 +53,7 @@ struct fsi_file {
        void *ff_data;
 };
 
-int find_plugin(fsi_t *, const char *);
+int find_plugin(fsi_t *, const char *, const char *);
 
 #ifdef __cplusplus
 };
diff -r b83cfb117bdd -r 89ca591a2c21 tools/libfsimage/ext2fs-lib/ext2fs-lib.c
--- a/tools/libfsimage/ext2fs-lib/ext2fs-lib.c  Mon Feb 19 22:50:07 2007 +0000
+++ b/tools/libfsimage/ext2fs-lib/ext2fs-lib.c  Mon Feb 19 20:44:42 2007 -0800
@@ -27,7 +27,7 @@
 #include <inttypes.h>
 
 static int
-ext2lib_mount(fsi_t *fsi, const char *name)
+ext2lib_mount(fsi_t *fsi, const char *name, const char *options)
 {
        int err;
        char opts[30] = "";
diff -r b83cfb117bdd -r 89ca591a2c21 tools/libfsimage/ext2fs/fsys_ext2fs.c
--- a/tools/libfsimage/ext2fs/fsys_ext2fs.c     Mon Feb 19 22:50:07 2007 +0000
+++ b/tools/libfsimage/ext2fs/fsys_ext2fs.c     Mon Feb 19 20:44:42 2007 -0800
@@ -321,7 +321,7 @@ ffz (unsigned long word)
 
 /* check filesystem types and read superblock into memory buffer */
 int
-ext2fs_mount (fsi_file_t *ffi)
+ext2fs_mount (fsi_file_t *ffi, const char *options)
 {
   int retval = 1;
 
diff -r b83cfb117bdd -r 89ca591a2c21 tools/libfsimage/reiserfs/fsys_reiserfs.c
--- a/tools/libfsimage/reiserfs/fsys_reiserfs.c Mon Feb 19 22:50:07 2007 +0000
+++ b/tools/libfsimage/reiserfs/fsys_reiserfs.c Mon Feb 19 20:44:42 2007 -0800
@@ -633,7 +633,7 @@ journal_init (fsi_file_t *ffi)
 
 /* check filesystem types and read superblock into memory buffer */
 int
-reiserfs_mount (fsi_file_t *ffi)
+reiserfs_mount (fsi_file_t *ffi, const char *options)
 {
   struct reiserfs_super_block super;
   int superblock = REISERFS_DISK_OFFSET_IN_BYTES >> SECTOR_BITS;
diff -r b83cfb117bdd -r 89ca591a2c21 tools/libfsimage/ufs/fsys_ufs.c
--- a/tools/libfsimage/ufs/fsys_ufs.c   Mon Feb 19 22:50:07 2007 +0000
+++ b/tools/libfsimage/ufs/fsys_ufs.c   Mon Feb 19 20:44:42 2007 -0800
@@ -44,7 +44,7 @@ static grub_daddr32_t sbmap(fsi_file_t *
 
 /* read superblock and check fs magic */
 int
-ufs_mount(fsi_file_t *ffi)
+ufs_mount(fsi_file_t *ffi, const char *options)
 {
        if (/*! IS_PC_SLICE_TYPE_SOLARIS(current_slice) || */
            !devread(ffi, UFS_SBLOCK, 0, UFS_SBSIZE, (char *)SUPERBLOCK) ||
diff -r b83cfb117bdd -r 89ca591a2c21 tools/pygrub/src/fsimage/fsimage.c
--- a/tools/pygrub/src/fsimage/fsimage.c        Mon Feb 19 22:50:07 2007 +0000
+++ b/tools/pygrub/src/fsimage/fsimage.c        Mon Feb 19 20:44:42 2007 -0800
@@ -260,19 +260,20 @@ static PyObject *
 static PyObject *
 fsimage_open(PyObject *o, PyObject *args, PyObject *kwargs)
 {
-       static char *kwlist[] = { "name", "offset", NULL };
-       char * name;
+       static char *kwlist[] = { "name", "offset", "options", NULL };
+       char *name;
+       char *options = NULL;
        uint64_t offset = 0;
        fsimage_fs_t *fs;
 
-       if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|L", kwlist, 
-           &name, &offset))
+       if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|Ls", kwlist, 
+           &name, &offset, &options))
                return (NULL);
 
        if ((fs = PyObject_NEW(fsimage_fs_t, &fsimage_fs_type)) == NULL)
                return (NULL);
 
-       if ((fs->fs = fsi_open_fsimage(name, offset)) == NULL) {
+       if ((fs->fs = fsi_open_fsimage(name, offset, options)) == NULL) {
                PyErr_SetFromErrno(PyExc_IOError);
                return (NULL);
        }
@@ -284,7 +285,8 @@ PyDoc_STRVAR(fsimage_open__doc__,
     "open(name, [offset=off]) - Open the given file as a filesystem image.\n"
     "\n"
     "name - name of file to open.\n"
-    "offset - offset of file system within file image.\n");
+    "offset - offset of file system within file image.\n"
+    "options - mount options string.\n");
 
 static struct PyMethodDef fsimage_module_methods[] = {
        { "open", (PyCFunction)fsimage_open,

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] Filesystem implementations may need optional arguments in terms of, Xen patchbot-unstable <=