[Ocfs2-tools-commits] mfasheh commits r624 - trunk/libo2cb/include
svn-commits at oss.oracle.com
svn-commits at oss.oracle.com
Mon Jan 31 12:15:28 CST 2005
Author: mfasheh
Date: 2005-01-31 12:15:26 -0600 (Mon, 31 Jan 2005)
New Revision: 624
Removed:
trunk/libo2cb/include/o2cb_dlm.h
Log:
* This API wound up being defined in libo2dlm
Deleted: trunk/libo2cb/include/o2cb_dlm.h
===================================================================
--- trunk/libo2cb/include/o2cb_dlm.h 2005-01-28 22:58:02 UTC (rev 623)
+++ trunk/libo2cb/include/o2cb_dlm.h 2005-01-31 18:15:26 UTC (rev 624)
@@ -1,127 +0,0 @@
-/* -*- mode: c; c-basic-offset: 8; -*-
- * vim: noexpandtab sw=8 ts=8 sts=0:
- *
- * o2cb_dlm.h
- *
- * Defines the userspace locking api
- *
- * Copyright (C) 2004 Oracle. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public
- * License, version 2, 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 for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 021110-1307, USA.
- */
-
-#ifndef _O2CB_DLM_H_
-#define _O2CB_DLM_H_
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-
-/* this is the top-level dir containing all the lock "files" I don't
- really expect it will end up being in this exact place */
-#define O2CB_USER_DLM_LOCK_PATH "/dev/ocfs2/dlm/"
-#define O2CB_LOCK_ID_MAX_LEN 32
-#define O2CB_DLM_OPEN_MODE 0664
-
-/* need to pull in the userland list.h header for this */
-struct o2cb_dlm_lock_ctxt
-{
- struct list_head ct_locks; /* the ordered list of locks */
-};
-
-/* valid lock flags */
-#define O2CB_DLM_TRYLOCK O_NONBLOCK
-
-/* valid lock levels */
-enum o2cb_lock_level
-{
- O2CB_DLM_LEVEL_PRMODE,
- O2CB_DLM_LEVEL_EXMODE
-};
-
-struct o2cb_lock
-{
- struct list_head l_list; /* to hang us off the locks list */
- char *l_id; /* 32 byte, null terminated string */
- int l_flags; /* limited set of flags */
- enum o2cb_lock_level l_level; /* either PR or EX */
- int l_fd; /* the fd returned by the open call */
-};
-
-
-/*
- * Should this be called by the lib on the first init call
- * or should it be called directly by the program (fsck, etc)
- * when it tries to start up? Or should this whole task be
- * done in an init script?
- *
- * This function needs to load the userdlm.o module
- * and mount its pseudo-fs in some location. Anything else???
- *
- * Returns: 0 on success
- * -EIO if the fs isn't ready
- */
-int o2cb_dlm_mount(void);
-
-/*
- * This should malloc a o2cb_dlm_lock_ctxt and init the locks
- * list_head
- *
- * Returns: 0 on success
- * -ENOMEM if we couldn't malloc
- */
-o2cb_dlm_lock_ctxt * o2cb_dlm_initialize(void);
-
-/*
- * Takes a valid o2cb_dlm_lock_ctxt and lockid and attempts to
- * open("O2CB_DLM_LOCK_PATH/lockid", flags|level|O_CREAT, mode).
- * Validates the id, flags, and level as best it can.
- * Mallocs one new o2cb_lock and stuffs the id, flags, level,
- * and new lock_fd into it, then list_add_tail's it to the end
- * of the supplied ctxt.
- *
- * lock_name, is a valid ocfs2 lock name -- 32 bytes long, null terminated.
- *
- * Returns: 0 if we got the lock we wanted
- * -ENOMEM if we couldn't malloc
- * -EIO if you never did a prepare()
- * -EBUSY if flags==O2CB_DLM_TRYLOCK and we didn't get the lock
- * -EINVAL if any of the 3 params was bad
- */
-int o2cb_dlm_lock(o2cb_dlm_lock_ctxt *ctxt,
- char *lockid,
- int flags,
- enum o2cb_lock_level level);
-
-/*
- * Looks up the lock id in your ctxt->locks list.
- * If found, calls close(lock_fd) and frees the o2cb_lock
- *
- * Returns: 0 on success
- * -EINVAL if the ctxt or ino is bad
- */
-int o2cb_dlm_unlock(o2cb_dlm_lock_ctxt *ctxt,
- char *lockid);
-
-/*
- * Frees the lock context
- *
- * Returns: 0 on success
- * -EBUSY if there are still locks remaining on the list
- * -EINVAL if ctxt is bad
- */
-int o2cb_dlm_destroy(o2cb_dlm_lock_ctxt *ctxt);
-
-#endif /* _O2CB_DLM_H_ */
More information about the Ocfs2-tools-commits
mailing list