[Ocfs2-commits] mfasheh commits r1056 - in trunk: . src src/inc
svn-commits at oss.oracle.com
svn-commits at oss.oracle.com
Fri Jun 11 17:43:35 CDT 2004
Author: mfasheh
Date: 2004-06-11 16:43:33 -0500 (Fri, 11 Jun 2004)
New Revision: 1056
Modified:
trunk/TODO
trunk/src/alloc.c
trunk/src/dir.c
trunk/src/dlm.c
trunk/src/file.c
trunk/src/inc/proto.h
trunk/src/inode.c
trunk/src/journal.c
trunk/src/namei.c
Log:
* remove the lock_id arguments from ocfs_acquire_lock and
ocfs_release_lock -- they get them from the inode now.
Modified: trunk/TODO
===================================================================
--- trunk/TODO 2004-06-11 21:24:49 UTC (rev 1055)
+++ trunk/TODO 2004-06-11 21:43:33 UTC (rev 1056)
@@ -34,9 +34,6 @@
different and / or special cased. In a related todo: Get rid of the
INODE_JOURNAL flag on our inodes and use the system file flag instead.
-* now that acquire_lock and release_lock take inodes, get rid of the lock_id
- and other redundant arguments in the prototype.
-
* Go through the code and remove every spot where we look inside a bh for a
value which is right there on an inode (like, whether it's a directory or
not, fe / vote offsets, lock flags, etc). This includes passing redundant
Modified: trunk/src/alloc.c
===================================================================
--- trunk/src/alloc.c 2004-06-11 21:24:49 UTC (rev 1055)
+++ trunk/src/alloc.c 2004-06-11 21:43:33 UTC (rev 1056)
@@ -323,8 +323,8 @@
}
down(&OCFS_I(extnode_inode[i])->ip_io_sem);
- status = ocfs_acquire_lock (osb, lock_id,
- OCFS_DLM_EXCLUSIVE_LOCK,
+ status = ocfs_acquire_lock (osb,
+ OCFS_DLM_EXCLUSIVE_LOCK,
FLAG_FILE_CREATE,
&ugly_hack_bh,
extnode_inode[i]);
@@ -352,8 +352,7 @@
}
down(&OCFS_I(vol_inode)->ip_io_sem);
- status = ocfs_acquire_lock (osb, OCFS_BITMAP_LOCK_OFFSET,
- OCFS_DLM_EXCLUSIVE_LOCK,
+ status = ocfs_acquire_lock (osb, OCFS_DLM_EXCLUSIVE_LOCK,
FLAG_FILE_CREATE,
&globalbh, vol_inode);
if (status < 0) {
@@ -413,8 +412,7 @@
ocfs_abort_trans(handle);
if (free_vol_bits) {
- status = ocfs_release_lock (osb, OCFS_BITMAP_LOCK_OFFSET,
- OCFS_DLM_EXCLUSIVE_LOCK,
+ status = ocfs_release_lock (osb, OCFS_DLM_EXCLUSIVE_LOCK,
FLAG_FILE_CREATE, globalbh,
vol_inode);
if (status < 0) {
@@ -427,7 +425,7 @@
osb->vol_layout.root_int_off;
for (i = 0; i < OCFS_MAXIMUM_NODES; i++, lock_id += osb->sect_size) {
if (free_ext_node[i] != NULL) {
- status = ocfs_release_lock (osb, lock_id,
+ status = ocfs_release_lock (osb,
OCFS_DLM_EXCLUSIVE_LOCK,
FLAG_FILE_CREATE,
NULL, extnode_inode[i]);
@@ -2713,8 +2711,7 @@
ocfs_handle_add_inode(handle, bitmap_inode);
/* Get the allocation lock here */
- status = ocfs_acquire_lock (osb, OCFS_BITMAP_LOCK_OFFSET,
- OCFS_DLM_EXCLUSIVE_LOCK, 0,
+ status = ocfs_acquire_lock (osb, OCFS_DLM_EXCLUSIVE_LOCK, 0,
&bh, bitmap_inode);
if (status < 0) {
if (status != -EINTR)
@@ -2869,7 +2866,6 @@
int startbh, numblocks;
__u64 fileSize = 0;
__u64 offset = 0;
- __u64 lockId = 0;
__u64 numBytes = 0;
__u64 allocSize = 0;
__u64 prevFileSize = 0;
@@ -2926,14 +2922,7 @@
BUG();
}
- /* Get a lock on the file */
- lockId = (bm_file * osb->sect_size) + osb->vol_layout.root_int_off;
- if (lockId != GET_INODE_FEOFF(inode)) {
- LOG_TRACE_ARGS("lockId = %llu, offset = %llu\n", lockId,
- GET_INODE_FEOFF(inode));
- BUG();
- }
- status = ocfs_acquire_lock (osb, lockId, OCFS_DLM_EXCLUSIVE_LOCK,
+ status = ocfs_acquire_lock (osb, OCFS_DLM_EXCLUSIVE_LOCK,
FLAG_FILE_CREATE, &bh, inode);
if (status < 0) {
LOG_ERROR_STATUS (status);
@@ -3549,8 +3538,7 @@
ocfs_handle_add_inode(handle, main_bm_inode);
/* Get the allocation lock here */
- status = ocfs_acquire_lock (osb, OCFS_BITMAP_LOCK_OFFSET,
- OCFS_DLM_EXCLUSIVE_LOCK, 0,
+ status = ocfs_acquire_lock (osb, OCFS_DLM_EXCLUSIVE_LOCK, 0,
&main_bm_bh,
main_bm_inode);
if (status < 0) {
Modified: trunk/src/dir.c
===================================================================
--- trunk/src/dir.c 2004-06-11 21:24:49 UTC (rev 1055)
+++ trunk/src/dir.c 2004-06-11 21:43:33 UTC (rev 1056)
@@ -177,14 +177,13 @@
int lock_acq = 0;
struct buffer_head *bh = NULL;
__u32 lock_type = OCFS_DLM_ENABLE_CACHE_LOCK;
- __u64 parent_off = GET_INODE_FEOFF(inode);
LOG_ENTRY_ARGS ("(osb=%p, parent=%llu, name='%*s', fe_off=%p, inode=%p)\n",
- osb, parent_off, namelen, name, fe_off, inode);
+ osb, GET_INODE_FEOFF(inode), namelen, name, fe_off, inode);
if (take_lock) {
/* Get a lock on the directory... */
- status = ocfs_acquire_lock (osb, parent_off, lock_type, FLAG_DIR|FLAG_READDIR,
+ status = ocfs_acquire_lock (osb, lock_type, FLAG_DIR|FLAG_READDIR,
&bh, inode);
if (status < 0) {
/* Volume should be disabled in this case */
@@ -207,7 +206,7 @@
if (take_lock && lock_acq)
{
- tmpstat = ocfs_release_lock (osb, parent_off, lock_type,
+ tmpstat = ocfs_release_lock (osb, lock_type,
FLAG_DIR|FLAG_READDIR, bh, inode);
if (tmpstat < 0) {
LOG_ERROR_STATUS (tmpstat);
Modified: trunk/src/dlm.c
===================================================================
--- trunk/src/dlm.c 2004-06-11 21:24:49 UTC (rev 1055)
+++ trunk/src/dlm.c 2004-06-11 21:43:33 UTC (rev 1056)
@@ -721,7 +721,7 @@
* ocfs_acquire_lock()
* inode is definitely non NULL
*/
-int ocfs_acquire_lock (ocfs_super * osb, __u64 lock_id, __u32 lock_type,
+int ocfs_acquire_lock (ocfs_super * osb, __u32 lock_type,
__u32 flags, struct buffer_head **bh, struct inode *inode)
{
int status = -EFAIL;
@@ -735,14 +735,17 @@
int disk_vote = 0;
int no_owner = 0, owner_dead = 0, wait_on_recovery = 0;
__u32 extra_lock_flags = 0;
+ __u64 lock_id;
- LOG_ENTRY_ARGS ("(0x%p, %llu, %u, %u, 0x%p)\n",
- osb, lock_id, lock_type, flags, bh);
+ LOG_ENTRY_ARGS ("(0x%p, %u, %u, 0x%p)\n",
+ osb, lock_type, flags, bh);
OCFS_ASSERT(lock_type != OCFS_DLM_NO_LOCK);
OCFS_ASSERT(inode);
- OCFS_ASSERT(GET_INODE_FEOFF(inode) == lock_id);
+ lock_id = GET_INODE_FEOFF(inode);
+ LOG_TRACE_ARGS("lock_id = %llu\n", lock_id);
+
if (bh != NULL)
b = bh;
else
@@ -1115,17 +1118,21 @@
* ocfs_release_lock()
* inode is definitely non NULL
*/
-int ocfs_release_lock (ocfs_super * osb, __u64 lock_id, __u32 lock_type, __u32 flags, struct buffer_head *bh, struct inode *inode)
+int ocfs_release_lock (ocfs_super * osb, __u32 lock_type, __u32 flags, struct buffer_head *bh, struct inode *inode)
{
int status = 0;
int tries = 0;
ocfs_lock_res *lockres = GET_INODE_LOCKRES(inode);
+ __u64 lock_id;
- LOG_ENTRY_ARGS ("(0x%p, %llu, %u, %u, 0x%p)\n",
- osb, lock_id, lock_type, flags, lockres);
+ LOG_ENTRY_ARGS ("(0x%p, %u, %u, 0x%p)\n",
+ osb, lock_type, flags, lockres);
OCFS_ASSERT(inode);
+ lock_id = GET_INODE_FEOFF(inode);
+ LOG_TRACE_ARGS("lock_id = %llu", lock_id);
+
flags |= FLAG_RELEASE_LOCK;
again:
Modified: trunk/src/file.c
===================================================================
--- trunk/src/file.c 2004-06-11 21:24:49 UTC (rev 1055)
+++ trunk/src/file.c 2004-06-11 21:43:33 UTC (rev 1056)
@@ -568,7 +568,6 @@
int tmpstat;
ocfs_file_entry *fileEntry = NULL;
int have_disk_lock = 0;
- __u64 lockId = 0;
__u32 lockFlags = 0, locktype = 0;
struct buffer_head *bh = NULL;
ocfs_journal_handle *handle = NULL;
@@ -598,7 +597,6 @@
locktype = OCFS_DLM_EXCLUSIVE_LOCK;
/* now we always take an UPDATE lock */
- lockId = fileEntry->this_sector;
lockFlags = FLAG_FILE_UPDATE;
OCFS_BH_PUT_DATA(bh);
@@ -612,7 +610,7 @@
ocfs_handle_set_checkpoint(handle, 0);
ocfs_handle_set_sync(handle, 0);
- status = ocfs_acquire_lock (osb, lockId, locktype, lockFlags,
+ status = ocfs_acquire_lock (osb, locktype, lockFlags,
&bh, inode);
if (status < 0) {
if (status != -EINTR)
@@ -661,7 +659,7 @@
}
}
if (have_disk_lock) {
- tmpstat = ocfs_release_lock (osb, lockId, locktype,
+ tmpstat = ocfs_release_lock (osb, locktype,
lockFlags, bh, inode);
if (tmpstat < 0)
LOG_ERROR_STATUS (tmpstat);
@@ -929,7 +927,6 @@
{
int status = 0, tmpstat;
ocfs_file_entry *fe = NULL;
- __u64 lockId = 0;
__u32 lockFlags = 0, locktype = 0;
int have_disk_lock = 0;
__u64 new_alloc_size;
@@ -966,7 +963,6 @@
goto leave;
}
- lockId = fe->this_sector;
lockFlags = FLAG_FILE_TRUNCATE;
if ((DISK_LOCK_FILE_LOCK (fe) == OCFS_DLM_ENABLE_CACHE_LOCK)
@@ -978,7 +974,7 @@
OCFS_BH_PUT_DATA(bh);
- status = ocfs_acquire_lock (osb, lockId, locktype, lockFlags,
+ status = ocfs_acquire_lock (osb, locktype, lockFlags,
&bh, inode);
if (status < 0) {
if (status != -EINTR)
@@ -1051,7 +1047,7 @@
if (have_disk_lock) {
lockFlags |= FLAG_FILE_UPDATE_OIN;
- tmpstat = ocfs_release_lock (osb, lockId, locktype,
+ tmpstat = ocfs_release_lock (osb, locktype,
lockFlags, bh, inode);
if (tmpstat < 0)
LOG_ERROR_STATUS (tmpstat);
@@ -1082,7 +1078,6 @@
__u32 size;
__u64 bitmapOffset = 0;
__u64 numClustersAlloc = 0;
- __u64 lockId = 0;
__u32 lockFlags = 0;
__u32 locktype = OCFS_DLM_ENABLE_CACHE_LOCK;
int have_disk_lock = 0;
@@ -1142,14 +1137,13 @@
fileEntry = OCFS_BH_GET_DATA_READ(bh);
/* now we always take an EXTEND lock */
- lockId = fileEntry->this_sector;
lockFlags = FLAG_FILE_EXTEND;
OCFS_BH_PUT_DATA(bh);
brelse(bh);
bh = NULL;
- status = ocfs_acquire_lock (osb, lockId, locktype, lockFlags, &bh, inode);
+ status = ocfs_acquire_lock (osb, locktype, lockFlags, &bh, inode);
if (status < 0) {
if (status != -EINTR)
LOG_ERROR_STATUS (status);
@@ -1297,7 +1291,7 @@
if (have_disk_lock) {
lockFlags |= FLAG_FILE_UPDATE_OIN;
- tmpstat = ocfs_release_lock (osb, lockId, OCFS_DLM_EXCLUSIVE_LOCK,
+ tmpstat = ocfs_release_lock (osb, OCFS_DLM_EXCLUSIVE_LOCK,
lockFlags, bh, inode);
if (tmpstat < 0)
LOG_ERROR_STATUS (tmpstat);
Modified: trunk/src/inc/proto.h
===================================================================
--- trunk/src/inc/proto.h 2004-06-11 21:24:49 UTC (rev 1055)
+++ trunk/src/inc/proto.h 2004-06-11 21:43:33 UTC (rev 1056)
@@ -111,14 +111,14 @@
int new_lock_function(ocfs_super *osb, __u32 requested_lock,
__u32 flags, struct buffer_head *bh,
int *disk_vote, struct inode *inode);
-int ocfs_acquire_lock(ocfs_super *osb, __u64 lock_id, __u32 lock_type,
+int ocfs_acquire_lock(ocfs_super *osb, __u32 lock_type,
__u32 flags, struct buffer_head **bh,
struct inode *inode);
int ocfs_break_cache_lock_zap_buffers(ocfs_super *osb,
struct inode *inode);
void ocfs_compute_dlm_stats(int status, int vote_status,
ocfs_dlm_stats *stats);
-int ocfs_release_lock(ocfs_super *osb, __u64 lock_id, __u32 lock_type,
+int ocfs_release_lock(ocfs_super *osb, __u32 lock_type,
__u32 flags, struct buffer_head *bh,
struct inode *inode);
int ocfs_update_disk_lock(ocfs_super *osb, __u32 flags,
Modified: trunk/src/inode.c
===================================================================
--- trunk/src/inode.c 2004-06-11 21:24:49 UTC (rev 1055)
+++ trunk/src/inode.c 2004-06-11 21:43:33 UTC (rev 1056)
@@ -703,8 +703,7 @@
ocfs_handle_add_inode(handle, orphan_dir_inode);
- status = ocfs_acquire_lock(osb, GET_INODE_FEOFF(orphan_dir_inode),
- OCFS_DLM_EXCLUSIVE_LOCK,
+ status = ocfs_acquire_lock(osb, OCFS_DLM_EXCLUSIVE_LOCK,
FLAG_FILE_CREATE | FLAG_DIR,
&orphan_dir_bh, orphan_dir_inode);
if (status < 0) {
@@ -721,8 +720,7 @@
down(&OCFS_I(inode)->ip_io_sem);
if (S_ISDIR(inode->i_mode))
lock_flags |= FLAG_DIR;
- status = ocfs_acquire_lock(osb, GET_INODE_FEOFF(inode),
- OCFS_DLM_EXCLUSIVE_LOCK, lock_flags,
+ status = ocfs_acquire_lock(osb, OCFS_DLM_EXCLUSIVE_LOCK, lock_flags,
&fe_bh, inode);
up(&OCFS_I(inode)->ip_io_sem);
if (status < 0) {
@@ -791,9 +789,8 @@
if (release_disk_lock) {
down(&OCFS_I(inode)->ip_io_sem);
- status = ocfs_release_lock(osb, GET_INODE_FEOFF(inode),
- OCFS_DLM_EXCLUSIVE_LOCK, lock_flags,
- fe_bh, inode);
+ status = ocfs_release_lock(osb, OCFS_DLM_EXCLUSIVE_LOCK,
+ lock_flags, fe_bh, inode);
up(&OCFS_I(inode)->ip_io_sem);
if (status < 0)
LOG_ERROR_STATUS(status);
Modified: trunk/src/journal.c
===================================================================
--- trunk/src/journal.c 2004-06-11 21:24:49 UTC (rev 1055)
+++ trunk/src/journal.c 2004-06-11 21:43:33 UTC (rev 1056)
@@ -262,7 +262,6 @@
if (!INODE_DELETED(lock->inode)) {
tmpstat = ocfs_release_lock(osb,
- GET_INODE_FEOFF(lock->inode),
lock->type,
lock->flags,
(action == TRANS_ABORT
@@ -889,7 +888,7 @@
SET_INODE_JOURNAL(inode);
/* TODO: Use another type of lock. */
- status = ocfs_acquire_lock (osb, lock_id, OCFS_DLM_EXCLUSIVE_LOCK,
+ status = ocfs_acquire_lock (osb, OCFS_DLM_EXCLUSIVE_LOCK,
FLAG_FILE_CREATE, &bh, inode);
if (status < 0) {
up(&OCFS_I(inode)->ip_io_sem);
@@ -1050,8 +1049,7 @@
down(&OCFS_I(inode)->ip_io_sem);
/* unlock our journal */
- status = ocfs_release_lock (osb, journal->lock_id,
- OCFS_DLM_EXCLUSIVE_LOCK,
+ status = ocfs_release_lock (osb, OCFS_DLM_EXCLUSIVE_LOCK,
FLAG_FILE_CREATE,
journal->lockbh, inode);
up(&OCFS_I(inode)->ip_io_sem);
@@ -1346,8 +1344,7 @@
if (osb->node_num == node_num)
BUG();
- status = ocfs_acquire_lock (osb, lock_id,
- OCFS_DLM_EXCLUSIVE_LOCK,
+ status = ocfs_acquire_lock (osb, OCFS_DLM_EXCLUSIVE_LOCK,
FLAG_FILE_CREATE|FLAG_FILE_RECOVERY,
&bh, inode);
@@ -1454,8 +1451,7 @@
if (got_lock) {
down(&OCFS_I(inode)->ip_io_sem);
- status = ocfs_release_lock(osb, lock_id,
- OCFS_DLM_EXCLUSIVE_LOCK,
+ status = ocfs_release_lock(osb, OCFS_DLM_EXCLUSIVE_LOCK,
FLAG_FILE_CREATE|FLAG_FILE_RECOVERY,
bh, inode);
up(&OCFS_I(inode)->ip_io_sem);
Modified: trunk/src/namei.c
===================================================================
--- trunk/src/namei.c 2004-06-11 21:24:49 UTC (rev 1055)
+++ trunk/src/namei.c 2004-06-11 21:43:33 UTC (rev 1056)
@@ -54,10 +54,10 @@
ocfs_journal_handle *handle,
struct inode *inode);
static int ocfs_double_lock(ocfs_super *osb, ocfs_journal_handle *handle,
- __u64 id1, __u32 type1, __u32 flags1,
+ __u32 type1, __u32 flags1,
struct buffer_head **bh1,
struct inode *inode1,
- __u64 id2, __u32 type2, __u32 flags2,
+ __u32 type2, __u32 flags2,
struct buffer_head **bh2,
struct inode *inode2);
@@ -143,7 +143,7 @@
{
int status = 0;
struct buffer_head *parent_fe_bh = NULL;
- __u64 parent_off, file_off;
+ __u64 file_off;
ocfs_journal_handle *handle = NULL;
ocfs_super *osb;
ocfs_file_entry *fe = NULL;
@@ -175,9 +175,6 @@
goto leave;
}
- /* need the offset of our parent directory to lock it */
- parent_off = GET_INODE_FEOFF(dir);
-
/* start the transaction */
handle = ocfs_start_trans(osb, OCFS_MKNOD_CREDITS);
if (handle == NULL) {
@@ -189,8 +186,7 @@
ocfs_handle_set_sync(handle, 0);
/* lock the parent directory */
- status = ocfs_acquire_lock (osb, parent_off,
- OCFS_DLM_ENABLE_CACHE_LOCK,
+ status = ocfs_acquire_lock (osb, OCFS_DLM_ENABLE_CACHE_LOCK,
FLAG_FILE_CREATE | FLAG_DIR,
&parent_fe_bh, dir);
if (status < 0) {
@@ -251,7 +247,7 @@
strcpy (de->name, ".");
ocfs_set_de_type(dir->i_sb, de, S_IFDIR);
de = (struct ocfs2_dir_entry *) ((char *) de + le16_to_cpu(de->rec_len));
- de->inode = cpu_to_le64(parent_off);
+ de->inode = cpu_to_le64(GET_INODE_FEOFF(dir));
de->rec_len = cpu_to_le16(inode->i_sb->s_blocksize-OCFS_DIR_REC_LEN(1));
de->name_len = 2;
strcpy (de->name, "..");
@@ -583,7 +579,7 @@
/* lock parent directory, yes we use FLAG_FILE_CREATE even
* though we're deleting ;) */
- status = ocfs_acquire_lock(osb, parent_off, OCFS_DLM_EXCLUSIVE_LOCK,
+ status = ocfs_acquire_lock(osb, OCFS_DLM_EXCLUSIVE_LOCK,
FLAG_FILE_CREATE|FLAG_DIR, NULL,
parentInode);
if (status < 0) {
@@ -611,7 +607,7 @@
goto leave;
}
- status = ocfs_acquire_lock (osb, fe_off, OCFS_DLM_EXCLUSIVE_LOCK,
+ status = ocfs_acquire_lock (osb, OCFS_DLM_EXCLUSIVE_LOCK,
lockFlags, &fe_bh, inode);
if (status < 0) {
if (status != -EINTR)
@@ -713,8 +709,7 @@
/* need this to alert dentry-owners on other nodes */
/* Release the file lock if we acquired it */
if (got_file) {
- tmpstat = ocfs_release_lock(osb, fe_off,
- OCFS_DLM_EXCLUSIVE_LOCK,
+ tmpstat = ocfs_release_lock(osb, OCFS_DLM_EXCLUSIVE_LOCK,
lockFlags, fe_bh, inode);
if (tmpstat < 0)
LOG_ERROR_STATUS(tmpstat);
@@ -722,8 +717,7 @@
}
if (got_parent) {
- tmpstat = ocfs_release_lock(osb, parent_off,
- OCFS_DLM_EXCLUSIVE_LOCK,
+ tmpstat = ocfs_release_lock(osb, OCFS_DLM_EXCLUSIVE_LOCK,
FLAG_FILE_CREATE|FLAG_DIR,
NULL, parentInode);
if (tmpstat < 0)
@@ -768,23 +762,26 @@
* if they have the same id, then the 1st one is the only one locked.
*/
static int ocfs_double_lock(ocfs_super *osb, ocfs_journal_handle *handle,
- __u64 id1, __u32 type1, __u32 flags1,
+ __u32 type1, __u32 flags1,
struct buffer_head **bh1,
struct inode *inode1,
- __u64 id2, __u32 type2, __u32 flags2,
+ __u32 type2, __u32 flags2,
struct buffer_head **bh2,
struct inode *inode2)
{
int status = 0;
int id2_locked = 0;
- __u64 tmpid;
+ __u64 tmpid, id1, id2;
__u32 tmptype, tmpflags;
struct buffer_head **tmpbh;
struct inode *tmpinode;
- LOG_ENTRY_ARGS("(lock_id1 = %llu, lock_id2 = %llu)\n", id1,
- id2);
+ LOG_ENTRY_ARGS("(lock_id1 = %llu, lock_id2 = %llu)\n",
+ GET_INODE_FEOFF(inode1), GET_INODE_FEOFF(inode2));
+ id1 = GET_INODE_FEOFF(inode1);
+ id2 = GET_INODE_FEOFF(inode2);
+
if (*bh1)
*bh1 = NULL;
if (*bh2)
@@ -816,7 +813,7 @@
inode1 = tmpinode;
}
/* lock id2 */
- status = ocfs_acquire_lock(osb, id2, type2, flags2, bh2, inode2);
+ status = ocfs_acquire_lock(osb, type2, flags2, bh2, inode2);
if (status < 0) {
LOG_ERROR_STATUS (status);
goto bail;
@@ -824,7 +821,7 @@
id2_locked = 1;
}
/* lock id1 */
- status = ocfs_acquire_lock(osb, id1, type1, flags1,
+ status = ocfs_acquire_lock(osb, type1, flags1,
bh1, inode1);
if (status < 0) {
LOG_ERROR_STATUS (status);
@@ -834,7 +831,7 @@
bail:
if (status < 0) {
if (id2_locked) {
- status = ocfs_release_lock(osb, id2, type2, flags2,
+ status = ocfs_release_lock(osb, type2, flags2,
*bh2, inode2);
if (bh2) {
brelse(*bh2);
@@ -892,7 +889,7 @@
struct buffer_head *newfe_bh = NULL;
struct buffer_head *insert_bh = NULL;
ocfs_super *osb = NULL;
- __u64 oldOffset, newDirOff, oldDirOff;
+ __u64 oldfe_lockid;
__u64 newfe_lockid = 0;
ocfs_journal_handle *handle = NULL;
__u32 dir_lock_flags = FLAG_FILE_CREATE | FLAG_DIR;
@@ -916,15 +913,8 @@
osb = OCFS_SB(old_dir->i_sb);
- /* old parent dir offset */
- oldDirOff = GET_INODE_FEOFF(old_dir);
+ oldfe_lockid = GET_INODE_FEOFF(old_inode);
- /* old file offset */
- oldOffset = GET_INODE_FEOFF(old_inode);
-
- /* new parent dir offset */
- newDirOff = GET_INODE_FEOFF(new_dir);
-
double_down(&OCFS_I(old_dir)->ip_io_sem, &OCFS_I(new_dir)->ip_io_sem);
down(&OCFS_I(old_inode)->ip_io_sem);
@@ -970,10 +960,10 @@
/* if old and new are the same, this'll just do one lock. */
status = ocfs_double_lock(osb, handle,
- oldDirOff, OCFS_DLM_EXCLUSIVE_LOCK,
+ OCFS_DLM_EXCLUSIVE_LOCK,
dir_lock_flags,
&old_dir_bh, old_dir,
- newDirOff, OCFS_DLM_EXCLUSIVE_LOCK,
+ OCFS_DLM_EXCLUSIVE_LOCK,
dir_lock_flags,
&new_dir_bh, new_dir);
if (status < 0) {
@@ -997,7 +987,7 @@
if (S_ISDIR(old_inode->i_mode))
oldfe_flags = FLAG_DIR;
- status = ocfs_acquire_lock(osb, oldOffset, OCFS_DLM_EXCLUSIVE_LOCK,
+ status = ocfs_acquire_lock(osb, OCFS_DLM_EXCLUSIVE_LOCK,
oldfe_flags, NULL, old_inode);
if (status < 0) {
LOG_ERROR_STATUS(status);
@@ -1064,8 +1054,7 @@
if (S_ISDIR(new_inode->i_mode))
newfe_flags = FLAG_DIR;
- status = ocfs_acquire_lock(osb, newfe_lockid,
- OCFS_DLM_EXCLUSIVE_LOCK,
+ status = ocfs_acquire_lock(osb, OCFS_DLM_EXCLUSIVE_LOCK,
newfe_flags, &newfe_bh,
new_inode);
if (status < 0) {
@@ -1149,7 +1138,7 @@
} else {
/* if the name was not found in new_dir, add it now */
status = ocfs_add_entry (handle, new_dentry, old_inode,
- oldOffset, new_dir_bh);
+ oldfe_lockid, new_dir_bh);
}
@@ -1222,14 +1211,12 @@
bail:
if (got_oldlock) {
- ocfs_release_lock(osb, oldOffset,
- OCFS_DLM_EXCLUSIVE_LOCK,
+ ocfs_release_lock(osb, OCFS_DLM_EXCLUSIVE_LOCK,
oldfe_flags, NULL, old_inode);
}
if (got_newlock) {
- ocfs_release_lock(osb, newfe_lockid,
- OCFS_DLM_EXCLUSIVE_LOCK,
+ ocfs_release_lock(osb, OCFS_DLM_EXCLUSIVE_LOCK,
newfe_flags, NULL, new_inode);
}
@@ -1278,7 +1265,7 @@
{
ocfs_super *osb = NULL;
struct inode *inode = NULL;
- __u64 file_off, parent_off;
+ __u64 file_off;
__u64 newsize;
int status;
struct super_block *sb;
@@ -1325,9 +1312,7 @@
}
/* lock the parent directory */
- parent_off = GET_INODE_FEOFF(dir);
- status = ocfs_acquire_lock (osb, parent_off,
- OCFS_DLM_ENABLE_CACHE_LOCK,
+ status = ocfs_acquire_lock (osb, OCFS_DLM_ENABLE_CACHE_LOCK,
FLAG_FILE_CREATE | FLAG_DIR,
&parent_fe_bh, dir);
if (status < 0) {
@@ -1397,8 +1382,7 @@
if (got_lock) {
int tmpstat;
- tmpstat = ocfs_release_lock (osb, parent_off,
- OCFS_DLM_ENABLE_CACHE_LOCK,
+ tmpstat = ocfs_release_lock (osb, OCFS_DLM_ENABLE_CACHE_LOCK,
FLAG_FILE_CREATE | FLAG_DIR,
parent_fe_bh, dir);
if (tmpstat < 0)
@@ -1815,8 +1799,7 @@
ocfs_handle_add_inode(handle, orphan_dir_inode);
/* disk lock orphan dir here. */
- status = ocfs_acquire_lock(osb, GET_INODE_FEOFF(orphan_dir_inode),
- OCFS_DLM_EXCLUSIVE_LOCK,
+ status = ocfs_acquire_lock(osb, OCFS_DLM_EXCLUSIVE_LOCK,
FLAG_FILE_CREATE | FLAG_DIR,
&orphan_dir_bh, orphan_dir_inode);
if (status < 0) {
@@ -1972,8 +1955,7 @@
/* lock the parent directory */
parent_off = GET_INODE_FEOFF(dir);
- err = ocfs_acquire_lock (osb, parent_off,
- OCFS_DLM_ENABLE_CACHE_LOCK,
+ err = ocfs_acquire_lock (osb, OCFS_DLM_ENABLE_CACHE_LOCK,
FLAG_FILE_CREATE | FLAG_DIR,
&parent_fe_bh, dir);
if (err < 0) {
@@ -1985,8 +1967,7 @@
/* lock the file entry */
fe_off = GET_INODE_FEOFF(inode);
- err = ocfs_acquire_lock (osb, fe_off,
- OCFS_DLM_ENABLE_CACHE_LOCK,
+ err = ocfs_acquire_lock (osb, OCFS_DLM_ENABLE_CACHE_LOCK,
FLAG_FILE_CREATE,
&bh, inode);
if (err < 0) {
@@ -2025,16 +2006,14 @@
ocfs_commit_trans(handle);
if (parent_off) {
- tmpstat = ocfs_release_lock (osb, parent_off,
- OCFS_DLM_ENABLE_CACHE_LOCK,
+ tmpstat = ocfs_release_lock (osb, OCFS_DLM_ENABLE_CACHE_LOCK,
FLAG_FILE_CREATE | FLAG_DIR,
parent_fe_bh, dir);
if (tmpstat < 0)
LOG_ERROR_STATUS (tmpstat);
}
if (fe_off) {
- tmpstat = ocfs_release_lock (osb, fe_off,
- OCFS_DLM_ENABLE_CACHE_LOCK,
+ tmpstat = ocfs_release_lock (osb, OCFS_DLM_ENABLE_CACHE_LOCK,
FLAG_FILE_CREATE,
bh, inode);
if (tmpstat < 0)
More information about the Ocfs2-commits
mailing list