diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-04 23:44:54 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-04 23:44:54 -0400 |
commit | fa24aa561a3cf91cf25b5d4066470b08a2d24206 (patch) | |
tree | 9002f7fb2dfd20b05062cd8dd69a7dda6372f23f | |
parent | 6cbf0c704d7c3bb215ae7e0381b1ff2ad5931f35 (diff) | |
parent | 9315f130e11249457f5c3a7f74ee82a7065bd854 (diff) |
Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2
* 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2:
ocfs2: Force use of GFP_NOFS in ocfs2_write()
ocfs2: fix sparse warnings in fs/ocfs2/cluster
ocfs2: fix sparse warnings in fs/ocfs2/dlm
ocfs2: fix sparse warnings in fs/ocfs2
[PATCH] Copy i_flags to ocfs2 inode flags on write
[PATCH] ocfs2: use __set_current_state()
ocfs2: Wrap access of directory allocations with ip_alloc_sem.
[PATCH] fs/ocfs2/: make 3 functions static
ocfs2: Implement compat_ioctl()
-rw-r--r-- | fs/ocfs2/alloc.c | 6 | ||||
-rw-r--r-- | fs/ocfs2/aops.c | 11 | ||||
-rw-r--r-- | fs/ocfs2/cluster/heartbeat.c | 2 | ||||
-rw-r--r-- | fs/ocfs2/cluster/tcp.c | 10 | ||||
-rw-r--r-- | fs/ocfs2/dir.c | 7 | ||||
-rw-r--r-- | fs/ocfs2/dlm/dlmast.c | 12 | ||||
-rw-r--r-- | fs/ocfs2/dlm/dlmrecovery.c | 4 | ||||
-rw-r--r-- | fs/ocfs2/dlm/dlmthread.c | 2 | ||||
-rw-r--r-- | fs/ocfs2/dlmglue.c | 54 | ||||
-rw-r--r-- | fs/ocfs2/dlmglue.h | 7 | ||||
-rw-r--r-- | fs/ocfs2/export.c | 6 | ||||
-rw-r--r-- | fs/ocfs2/file.c | 17 | ||||
-rw-r--r-- | fs/ocfs2/file.h | 5 | ||||
-rw-r--r-- | fs/ocfs2/inode.c | 35 | ||||
-rw-r--r-- | fs/ocfs2/inode.h | 1 | ||||
-rw-r--r-- | fs/ocfs2/ioctl.c | 24 | ||||
-rw-r--r-- | fs/ocfs2/ioctl.h | 1 | ||||
-rw-r--r-- | fs/ocfs2/journal.c | 7 | ||||
-rw-r--r-- | fs/ocfs2/namei.c | 5 | ||||
-rw-r--r-- | fs/ocfs2/ocfs2.h | 12 | ||||
-rw-r--r-- | fs/ocfs2/ocfs2_fs.h | 2 | ||||
-rw-r--r-- | fs/ocfs2/suballoc.c | 10 | ||||
-rw-r--r-- | fs/ocfs2/super.c | 2 |
23 files changed, 151 insertions, 91 deletions
diff --git a/fs/ocfs2/alloc.c b/fs/ocfs2/alloc.c index a0c8667caa72..19712a7d145f 100644 --- a/fs/ocfs2/alloc.c +++ b/fs/ocfs2/alloc.c | |||
@@ -2869,7 +2869,7 @@ int ocfs2_complete_truncate_log_recovery(struct ocfs2_super *osb, | |||
2869 | tl = &tl_copy->id2.i_dealloc; | 2869 | tl = &tl_copy->id2.i_dealloc; |
2870 | num_recs = le16_to_cpu(tl->tl_used); | 2870 | num_recs = le16_to_cpu(tl->tl_used); |
2871 | mlog(0, "cleanup %u records from %llu\n", num_recs, | 2871 | mlog(0, "cleanup %u records from %llu\n", num_recs, |
2872 | (unsigned long long)tl_copy->i_blkno); | 2872 | (unsigned long long)le64_to_cpu(tl_copy->i_blkno)); |
2873 | 2873 | ||
2874 | mutex_lock(&tl_inode->i_mutex); | 2874 | mutex_lock(&tl_inode->i_mutex); |
2875 | for(i = 0; i < num_recs; i++) { | 2875 | for(i = 0; i < num_recs; i++) { |
@@ -3801,8 +3801,8 @@ int ocfs2_prepare_truncate(struct ocfs2_super *osb, | |||
3801 | fe = (struct ocfs2_dinode *) fe_bh->b_data; | 3801 | fe = (struct ocfs2_dinode *) fe_bh->b_data; |
3802 | 3802 | ||
3803 | mlog(0, "fe->i_clusters = %u, new_i_clusters = %u, fe->i_size =" | 3803 | mlog(0, "fe->i_clusters = %u, new_i_clusters = %u, fe->i_size =" |
3804 | "%llu\n", fe->i_clusters, new_i_clusters, | 3804 | "%llu\n", le32_to_cpu(fe->i_clusters), new_i_clusters, |
3805 | (unsigned long long)fe->i_size); | 3805 | (unsigned long long)le64_to_cpu(fe->i_size)); |
3806 | 3806 | ||
3807 | *tc = kzalloc(sizeof(struct ocfs2_truncate_context), GFP_KERNEL); | 3807 | *tc = kzalloc(sizeof(struct ocfs2_truncate_context), GFP_KERNEL); |
3808 | if (!(*tc)) { | 3808 | if (!(*tc)) { |
diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c index 56963e6c46c0..8e7cafb5fc6c 100644 --- a/fs/ocfs2/aops.c +++ b/fs/ocfs2/aops.c | |||
@@ -78,7 +78,8 @@ static int ocfs2_symlink_get_block(struct inode *inode, sector_t iblock, | |||
78 | 78 | ||
79 | if (!OCFS2_IS_VALID_DINODE(fe)) { | 79 | if (!OCFS2_IS_VALID_DINODE(fe)) { |
80 | mlog(ML_ERROR, "Invalid dinode #%llu: signature = %.*s\n", | 80 | mlog(ML_ERROR, "Invalid dinode #%llu: signature = %.*s\n", |
81 | (unsigned long long)fe->i_blkno, 7, fe->i_signature); | 81 | (unsigned long long)le64_to_cpu(fe->i_blkno), 7, |
82 | fe->i_signature); | ||
82 | goto bail; | 83 | goto bail; |
83 | } | 84 | } |
84 | 85 | ||
@@ -939,9 +940,9 @@ out: | |||
939 | * Returns a negative error code or the number of bytes copied into | 940 | * Returns a negative error code or the number of bytes copied into |
940 | * the page. | 941 | * the page. |
941 | */ | 942 | */ |
942 | int ocfs2_write_data_page(struct inode *inode, handle_t *handle, | 943 | static int ocfs2_write_data_page(struct inode *inode, handle_t *handle, |
943 | u64 *p_blkno, struct page *page, | 944 | u64 *p_blkno, struct page *page, |
944 | struct ocfs2_write_ctxt *wc, int new) | 945 | struct ocfs2_write_ctxt *wc, int new) |
945 | { | 946 | { |
946 | int ret, copied = 0; | 947 | int ret, copied = 0; |
947 | unsigned int from = 0, to = 0; | 948 | unsigned int from = 0, to = 0; |
@@ -1086,7 +1087,7 @@ static ssize_t ocfs2_write(struct file *file, u32 phys, handle_t *handle, | |||
1086 | for(i = 0; i < numpages; i++) { | 1087 | for(i = 0; i < numpages; i++) { |
1087 | index = start + i; | 1088 | index = start + i; |
1088 | 1089 | ||
1089 | cpages[i] = grab_cache_page(mapping, index); | 1090 | cpages[i] = find_or_create_page(mapping, index, GFP_NOFS); |
1090 | if (!cpages[i]) { | 1091 | if (!cpages[i]) { |
1091 | ret = -ENOMEM; | 1092 | ret = -ENOMEM; |
1092 | mlog_errno(ret); | 1093 | mlog_errno(ret); |
diff --git a/fs/ocfs2/cluster/heartbeat.c b/fs/ocfs2/cluster/heartbeat.c index eba282da500e..979113479c66 100644 --- a/fs/ocfs2/cluster/heartbeat.c +++ b/fs/ocfs2/cluster/heartbeat.c | |||
@@ -438,7 +438,7 @@ static inline void o2hb_prepare_block(struct o2hb_region *reg, | |||
438 | hb_block)); | 438 | hb_block)); |
439 | 439 | ||
440 | mlog(ML_HB_BIO, "our node generation = 0x%llx, cksum = 0x%x\n", | 440 | mlog(ML_HB_BIO, "our node generation = 0x%llx, cksum = 0x%x\n", |
441 | (long long)cpu_to_le64(generation), | 441 | (long long)generation, |
442 | le32_to_cpu(hb_block->hb_cksum)); | 442 | le32_to_cpu(hb_block->hb_cksum)); |
443 | } | 443 | } |
444 | 444 | ||
diff --git a/fs/ocfs2/cluster/tcp.c b/fs/ocfs2/cluster/tcp.c index 69caf3e12fea..0b229a9c7952 100644 --- a/fs/ocfs2/cluster/tcp.c +++ b/fs/ocfs2/cluster/tcp.c | |||
@@ -1496,7 +1496,7 @@ static void o2net_start_connect(struct work_struct *work) | |||
1496 | sock->sk->sk_allocation = GFP_ATOMIC; | 1496 | sock->sk->sk_allocation = GFP_ATOMIC; |
1497 | 1497 | ||
1498 | myaddr.sin_family = AF_INET; | 1498 | myaddr.sin_family = AF_INET; |
1499 | myaddr.sin_addr.s_addr = (__force u32)mynode->nd_ipv4_address; | 1499 | myaddr.sin_addr.s_addr = mynode->nd_ipv4_address; |
1500 | myaddr.sin_port = (__force u16)htons(0); /* any port */ | 1500 | myaddr.sin_port = (__force u16)htons(0); /* any port */ |
1501 | 1501 | ||
1502 | ret = sock->ops->bind(sock, (struct sockaddr *)&myaddr, | 1502 | ret = sock->ops->bind(sock, (struct sockaddr *)&myaddr, |
@@ -1521,8 +1521,8 @@ static void o2net_start_connect(struct work_struct *work) | |||
1521 | spin_unlock(&nn->nn_lock); | 1521 | spin_unlock(&nn->nn_lock); |
1522 | 1522 | ||
1523 | remoteaddr.sin_family = AF_INET; | 1523 | remoteaddr.sin_family = AF_INET; |
1524 | remoteaddr.sin_addr.s_addr = (__force u32)node->nd_ipv4_address; | 1524 | remoteaddr.sin_addr.s_addr = node->nd_ipv4_address; |
1525 | remoteaddr.sin_port = (__force u16)node->nd_ipv4_port; | 1525 | remoteaddr.sin_port = node->nd_ipv4_port; |
1526 | 1526 | ||
1527 | ret = sc->sc_sock->ops->connect(sc->sc_sock, | 1527 | ret = sc->sc_sock->ops->connect(sc->sc_sock, |
1528 | (struct sockaddr *)&remoteaddr, | 1528 | (struct sockaddr *)&remoteaddr, |
@@ -1810,8 +1810,8 @@ static int o2net_open_listening_sock(__be32 addr, __be16 port) | |||
1810 | int ret; | 1810 | int ret; |
1811 | struct sockaddr_in sin = { | 1811 | struct sockaddr_in sin = { |
1812 | .sin_family = PF_INET, | 1812 | .sin_family = PF_INET, |
1813 | .sin_addr = { .s_addr = (__force u32)addr }, | 1813 | .sin_addr = { .s_addr = addr }, |
1814 | .sin_port = (__force u16)port, | 1814 | .sin_port = port, |
1815 | }; | 1815 | }; |
1816 | 1816 | ||
1817 | ret = sock_create(PF_INET, SOCK_STREAM, IPPROTO_TCP, &sock); | 1817 | ret = sock_create(PF_INET, SOCK_STREAM, IPPROTO_TCP, &sock); |
diff --git a/fs/ocfs2/dir.c b/fs/ocfs2/dir.c index 67e6866a2a4f..c441ef1f2bad 100644 --- a/fs/ocfs2/dir.c +++ b/fs/ocfs2/dir.c | |||
@@ -403,7 +403,7 @@ static int ocfs2_extend_dir(struct ocfs2_super *osb, | |||
403 | struct buffer_head **new_de_bh) | 403 | struct buffer_head **new_de_bh) |
404 | { | 404 | { |
405 | int status = 0; | 405 | int status = 0; |
406 | int credits, num_free_extents; | 406 | int credits, num_free_extents, drop_alloc_sem = 0; |
407 | loff_t dir_i_size; | 407 | loff_t dir_i_size; |
408 | struct ocfs2_dinode *fe = (struct ocfs2_dinode *) parent_fe_bh->b_data; | 408 | struct ocfs2_dinode *fe = (struct ocfs2_dinode *) parent_fe_bh->b_data; |
409 | struct ocfs2_alloc_context *data_ac = NULL; | 409 | struct ocfs2_alloc_context *data_ac = NULL; |
@@ -452,6 +452,9 @@ static int ocfs2_extend_dir(struct ocfs2_super *osb, | |||
452 | credits = OCFS2_SIMPLE_DIR_EXTEND_CREDITS; | 452 | credits = OCFS2_SIMPLE_DIR_EXTEND_CREDITS; |
453 | } | 453 | } |
454 | 454 | ||
455 | down_write(&OCFS2_I(dir)->ip_alloc_sem); | ||
456 | drop_alloc_sem = 1; | ||
457 | |||
455 | handle = ocfs2_start_trans(osb, credits); | 458 | handle = ocfs2_start_trans(osb, credits); |
456 | if (IS_ERR(handle)) { | 459 | if (IS_ERR(handle)) { |
457 | status = PTR_ERR(handle); | 460 | status = PTR_ERR(handle); |
@@ -497,6 +500,8 @@ static int ocfs2_extend_dir(struct ocfs2_super *osb, | |||
497 | *new_de_bh = new_bh; | 500 | *new_de_bh = new_bh; |
498 | get_bh(*new_de_bh); | 501 | get_bh(*new_de_bh); |
499 | bail: | 502 | bail: |
503 | if (drop_alloc_sem) | ||
504 | up_write(&OCFS2_I(dir)->ip_alloc_sem); | ||
500 | if (handle) | 505 | if (handle) |
501 | ocfs2_commit_trans(osb, handle); | 506 | ocfs2_commit_trans(osb, handle); |
502 | 507 | ||
diff --git a/fs/ocfs2/dlm/dlmast.c b/fs/ocfs2/dlm/dlmast.c index 241cad342a48..2fd8bded38f3 100644 --- a/fs/ocfs2/dlm/dlmast.c +++ b/fs/ocfs2/dlm/dlmast.c | |||
@@ -312,8 +312,8 @@ int dlm_proxy_ast_handler(struct o2net_msg *msg, u32 len, void *data, | |||
312 | past->type != DLM_BAST) { | 312 | past->type != DLM_BAST) { |
313 | mlog(ML_ERROR, "Unknown ast type! %d, cookie=%u:%llu" | 313 | mlog(ML_ERROR, "Unknown ast type! %d, cookie=%u:%llu" |
314 | "name=%.*s\n", past->type, | 314 | "name=%.*s\n", past->type, |
315 | dlm_get_lock_cookie_node(be64_to_cpu(cookie)), | 315 | dlm_get_lock_cookie_node(cookie), |
316 | dlm_get_lock_cookie_seq(be64_to_cpu(cookie)), | 316 | dlm_get_lock_cookie_seq(cookie), |
317 | locklen, name); | 317 | locklen, name); |
318 | ret = DLM_IVLOCKID; | 318 | ret = DLM_IVLOCKID; |
319 | goto leave; | 319 | goto leave; |
@@ -324,8 +324,8 @@ int dlm_proxy_ast_handler(struct o2net_msg *msg, u32 len, void *data, | |||
324 | mlog(0, "got %sast for unknown lockres! " | 324 | mlog(0, "got %sast for unknown lockres! " |
325 | "cookie=%u:%llu, name=%.*s, namelen=%u\n", | 325 | "cookie=%u:%llu, name=%.*s, namelen=%u\n", |
326 | past->type == DLM_AST ? "" : "b", | 326 | past->type == DLM_AST ? "" : "b", |
327 | dlm_get_lock_cookie_node(be64_to_cpu(cookie)), | 327 | dlm_get_lock_cookie_node(cookie), |
328 | dlm_get_lock_cookie_seq(be64_to_cpu(cookie)), | 328 | dlm_get_lock_cookie_seq(cookie), |
329 | locklen, name, locklen); | 329 | locklen, name, locklen); |
330 | ret = DLM_IVLOCKID; | 330 | ret = DLM_IVLOCKID; |
331 | goto leave; | 331 | goto leave; |
@@ -370,8 +370,8 @@ int dlm_proxy_ast_handler(struct o2net_msg *msg, u32 len, void *data, | |||
370 | 370 | ||
371 | mlog(0, "got %sast for unknown lock! cookie=%u:%llu, " | 371 | mlog(0, "got %sast for unknown lock! cookie=%u:%llu, " |
372 | "name=%.*s, namelen=%u\n", past->type == DLM_AST ? "" : "b", | 372 | "name=%.*s, namelen=%u\n", past->type == DLM_AST ? "" : "b", |
373 | dlm_get_lock_cookie_node(be64_to_cpu(cookie)), | 373 | dlm_get_lock_cookie_node(cookie), |
374 | dlm_get_lock_cookie_seq(be64_to_cpu(cookie)), | 374 | dlm_get_lock_cookie_seq(cookie), |
375 | locklen, name, locklen); | 375 | locklen, name, locklen); |
376 | 376 | ||
377 | ret = DLM_NORMAL; | 377 | ret = DLM_NORMAL; |
diff --git a/fs/ocfs2/dlm/dlmrecovery.c b/fs/ocfs2/dlm/dlmrecovery.c index c1807a42c49f..671c4ed58ee2 100644 --- a/fs/ocfs2/dlm/dlmrecovery.c +++ b/fs/ocfs2/dlm/dlmrecovery.c | |||
@@ -1769,7 +1769,7 @@ static int dlm_process_recovery_data(struct dlm_ctxt *dlm, | |||
1769 | /* lock is always created locally first, and | 1769 | /* lock is always created locally first, and |
1770 | * destroyed locally last. it must be on the list */ | 1770 | * destroyed locally last. it must be on the list */ |
1771 | if (!lock) { | 1771 | if (!lock) { |
1772 | u64 c = ml->cookie; | 1772 | __be64 c = ml->cookie; |
1773 | mlog(ML_ERROR, "could not find local lock " | 1773 | mlog(ML_ERROR, "could not find local lock " |
1774 | "with cookie %u:%llu!\n", | 1774 | "with cookie %u:%llu!\n", |
1775 | dlm_get_lock_cookie_node(be64_to_cpu(c)), | 1775 | dlm_get_lock_cookie_node(be64_to_cpu(c)), |
@@ -1878,7 +1878,7 @@ skip_lvb: | |||
1878 | spin_lock(&res->spinlock); | 1878 | spin_lock(&res->spinlock); |
1879 | list_for_each_entry(lock, queue, list) { | 1879 | list_for_each_entry(lock, queue, list) { |
1880 | if (lock->ml.cookie == ml->cookie) { | 1880 | if (lock->ml.cookie == ml->cookie) { |
1881 | u64 c = lock->ml.cookie; | 1881 | __be64 c = lock->ml.cookie; |
1882 | mlog(ML_ERROR, "%s:%.*s: %u:%llu: lock already " | 1882 | mlog(ML_ERROR, "%s:%.*s: %u:%llu: lock already " |
1883 | "exists on this lockres!\n", dlm->name, | 1883 | "exists on this lockres!\n", dlm->name, |
1884 | res->lockname.len, res->lockname.name, | 1884 | res->lockname.len, res->lockname.name, |
diff --git a/fs/ocfs2/dlm/dlmthread.c b/fs/ocfs2/dlm/dlmthread.c index 2b264c6ba039..cebd089f8955 100644 --- a/fs/ocfs2/dlm/dlmthread.c +++ b/fs/ocfs2/dlm/dlmthread.c | |||
@@ -76,7 +76,7 @@ repeat: | |||
76 | goto repeat; | 76 | goto repeat; |
77 | } | 77 | } |
78 | remove_wait_queue(&res->wq, &wait); | 78 | remove_wait_queue(&res->wq, &wait); |
79 | current->state = TASK_RUNNING; | 79 | __set_current_state(TASK_RUNNING); |
80 | } | 80 | } |
81 | 81 | ||
82 | int __dlm_lockres_has_locks(struct dlm_lock_resource *res) | 82 | int __dlm_lockres_has_locks(struct dlm_lock_resource *res) |
diff --git a/fs/ocfs2/dlmglue.c b/fs/ocfs2/dlmglue.c index 27e43b0c0eae..024777abc8e3 100644 --- a/fs/ocfs2/dlmglue.c +++ b/fs/ocfs2/dlmglue.c | |||
@@ -104,6 +104,35 @@ static int ocfs2_dentry_convert_worker(struct ocfs2_lock_res *lockres, | |||
104 | static void ocfs2_dentry_post_unlock(struct ocfs2_super *osb, | 104 | static void ocfs2_dentry_post_unlock(struct ocfs2_super *osb, |
105 | struct ocfs2_lock_res *lockres); | 105 | struct ocfs2_lock_res *lockres); |
106 | 106 | ||
107 | |||
108 | #define mlog_meta_lvb(__level, __lockres) ocfs2_dump_meta_lvb_info(__level, __PRETTY_FUNCTION__, __LINE__, __lockres) | ||
109 | |||
110 | /* This aids in debugging situations where a bad LVB might be involved. */ | ||
111 | static void ocfs2_dump_meta_lvb_info(u64 level, | ||
112 | const char *function, | ||
113 | unsigned int line, | ||
114 | struct ocfs2_lock_res *lockres) | ||
115 | { | ||
116 | struct ocfs2_meta_lvb *lvb = (struct ocfs2_meta_lvb *) lockres->l_lksb.lvb; | ||
117 | |||
118 | mlog(level, "LVB information for %s (called from %s:%u):\n", | ||
119 | lockres->l_name, function, line); | ||
120 | mlog(level, "version: %u, clusters: %u, generation: 0x%x\n", | ||
121 | lvb->lvb_version, be32_to_cpu(lvb->lvb_iclusters), | ||
122 | be32_to_cpu(lvb->lvb_igeneration)); | ||
123 | mlog(level, "size: %llu, uid %u, gid %u, mode 0x%x\n", | ||
124 | (unsigned long long)be64_to_cpu(lvb->lvb_isize), | ||
125 | be32_to_cpu(lvb->lvb_iuid), be32_to_cpu(lvb->lvb_igid), | ||
126 | be16_to_cpu(lvb->lvb_imode)); | ||
127 | mlog(level, "nlink %u, atime_packed 0x%llx, ctime_packed 0x%llx, " | ||
128 | "mtime_packed 0x%llx iattr 0x%x\n", be16_to_cpu(lvb->lvb_inlink), | ||
129 | (long long)be64_to_cpu(lvb->lvb_iatime_packed), | ||
130 | (long long)be64_to_cpu(lvb->lvb_ictime_packed), | ||
131 | (long long)be64_to_cpu(lvb->lvb_imtime_packed), | ||
132 | be32_to_cpu(lvb->lvb_iattr)); | ||
133 | } | ||
134 | |||
135 | |||
107 | /* | 136 | /* |
108 | * OCFS2 Lock Resource Operations | 137 | * OCFS2 Lock Resource Operations |
109 | * | 138 | * |
@@ -3078,28 +3107,3 @@ static void ocfs2_schedule_blocked_lock(struct ocfs2_super *osb, | |||
3078 | 3107 | ||
3079 | mlog_exit_void(); | 3108 | mlog_exit_void(); |
3080 | } | 3109 | } |
3081 | |||
3082 | /* This aids in debugging situations where a bad LVB might be involved. */ | ||
3083 | void ocfs2_dump_meta_lvb_info(u64 level, | ||
3084 | const char *function, | ||
3085 | unsigned int line, | ||
3086 | struct ocfs2_lock_res *lockres) | ||
3087 | { | ||
3088 | struct ocfs2_meta_lvb *lvb = (struct ocfs2_meta_lvb *) lockres->l_lksb.lvb; | ||
3089 | |||
3090 | mlog(level, "LVB information for %s (called from %s:%u):\n", | ||
3091 | lockres->l_name, function, line); | ||
3092 | mlog(level, "version: %u, clusters: %u, generation: 0x%x\n", | ||
3093 | lvb->lvb_version, be32_to_cpu(lvb->lvb_iclusters), | ||
3094 | be32_to_cpu(lvb->lvb_igeneration)); | ||
3095 | mlog(level, "size: %llu, uid %u, gid %u, mode 0x%x\n", | ||
3096 | (unsigned long long)be64_to_cpu(lvb->lvb_isize), | ||
3097 | be32_to_cpu(lvb->lvb_iuid), be32_to_cpu(lvb->lvb_igid), | ||
3098 | be16_to_cpu(lvb->lvb_imode)); | ||
3099 | mlog(level, "nlink %u, atime_packed 0x%llx, ctime_packed 0x%llx, " | ||
3100 | "mtime_packed 0x%llx iattr 0x%x\n", be16_to_cpu(lvb->lvb_inlink), | ||
3101 | (long long)be64_to_cpu(lvb->lvb_iatime_packed), | ||
3102 | (long long)be64_to_cpu(lvb->lvb_ictime_packed), | ||
3103 | (long long)be64_to_cpu(lvb->lvb_imtime_packed), | ||
3104 | be32_to_cpu(lvb->lvb_iattr)); | ||
3105 | } | ||
diff --git a/fs/ocfs2/dlmglue.h b/fs/ocfs2/dlmglue.h index 59cb566e7983..492bad32a8c0 100644 --- a/fs/ocfs2/dlmglue.h +++ b/fs/ocfs2/dlmglue.h | |||
@@ -119,11 +119,4 @@ void ocfs2_process_blocked_lock(struct ocfs2_super *osb, | |||
119 | struct ocfs2_dlm_debug *ocfs2_new_dlm_debug(void); | 119 | struct ocfs2_dlm_debug *ocfs2_new_dlm_debug(void); |
120 | void ocfs2_put_dlm_debug(struct ocfs2_dlm_debug *dlm_debug); | 120 | void ocfs2_put_dlm_debug(struct ocfs2_dlm_debug *dlm_debug); |
121 | 121 | ||
122 | /* aids in debugging and tracking lvbs */ | ||
123 | void ocfs2_dump_meta_lvb_info(u64 level, | ||
124 | const char *function, | ||
125 | unsigned int line, | ||
126 | struct ocfs2_lock_res *lockres); | ||
127 | #define mlog_meta_lvb(__level, __lockres) ocfs2_dump_meta_lvb_info(__level, __PRETTY_FUNCTION__, __LINE__, __lockres) | ||
128 | |||
129 | #endif /* DLMGLUE_H */ | 122 | #endif /* DLMGLUE_H */ |
diff --git a/fs/ocfs2/export.c b/fs/ocfs2/export.c index 56e1fefc1205..bc48177bd183 100644 --- a/fs/ocfs2/export.c +++ b/fs/ocfs2/export.c | |||
@@ -140,7 +140,7 @@ bail: | |||
140 | return parent; | 140 | return parent; |
141 | } | 141 | } |
142 | 142 | ||
143 | static int ocfs2_encode_fh(struct dentry *dentry, __be32 *fh, int *max_len, | 143 | static int ocfs2_encode_fh(struct dentry *dentry, u32 *fh_in, int *max_len, |
144 | int connectable) | 144 | int connectable) |
145 | { | 145 | { |
146 | struct inode *inode = dentry->d_inode; | 146 | struct inode *inode = dentry->d_inode; |
@@ -148,6 +148,7 @@ static int ocfs2_encode_fh(struct dentry *dentry, __be32 *fh, int *max_len, | |||
148 | int type = 1; | 148 | int type = 1; |
149 | u64 blkno; | 149 | u64 blkno; |
150 | u32 generation; | 150 | u32 generation; |
151 | __le32 *fh = (__force __le32 *) fh_in; | ||
151 | 152 | ||
152 | mlog_entry("(0x%p, '%.*s', 0x%p, %d, %d)\n", dentry, | 153 | mlog_entry("(0x%p, '%.*s', 0x%p, %d, %d)\n", dentry, |
153 | dentry->d_name.len, dentry->d_name.name, | 154 | dentry->d_name.len, dentry->d_name.name, |
@@ -199,7 +200,7 @@ bail: | |||
199 | return type; | 200 | return type; |
200 | } | 201 | } |
201 | 202 | ||
202 | static struct dentry *ocfs2_decode_fh(struct super_block *sb, __be32 *fh, | 203 | static struct dentry *ocfs2_decode_fh(struct super_block *sb, u32 *fh_in, |
203 | int fh_len, int fileid_type, | 204 | int fh_len, int fileid_type, |
204 | int (*acceptable)(void *context, | 205 | int (*acceptable)(void *context, |
205 | struct dentry *de), | 206 | struct dentry *de), |
@@ -207,6 +208,7 @@ static struct dentry *ocfs2_decode_fh(struct super_block *sb, __be32 *fh, | |||
207 | { | 208 | { |
208 | struct ocfs2_inode_handle handle, parent; | 209 | struct ocfs2_inode_handle handle, parent; |
209 | struct dentry *ret = NULL; | 210 | struct dentry *ret = NULL; |
211 | __le32 *fh = (__force __le32 *) fh_in; | ||
210 | 212 | ||
211 | mlog_entry("(0x%p, 0x%p, %d, %d, 0x%p, 0x%p)\n", | 213 | mlog_entry("(0x%p, 0x%p, %d, %d, 0x%p, 0x%p)\n", |
212 | sb, fh, fh_len, fileid_type, acceptable, context); | 214 | sb, fh, fh_len, fileid_type, acceptable, context); |
diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c index 520a2a6d7670..9395b4fa547d 100644 --- a/fs/ocfs2/file.c +++ b/fs/ocfs2/file.c | |||
@@ -207,10 +207,10 @@ out: | |||
207 | return ret; | 207 | return ret; |
208 | } | 208 | } |
209 | 209 | ||
210 | int ocfs2_set_inode_size(handle_t *handle, | 210 | static int ocfs2_set_inode_size(handle_t *handle, |
211 | struct inode *inode, | 211 | struct inode *inode, |
212 | struct buffer_head *fe_bh, | 212 | struct buffer_head *fe_bh, |
213 | u64 new_i_size) | 213 | u64 new_i_size) |
214 | { | 214 | { |
215 | int status; | 215 | int status; |
216 | 216 | ||
@@ -713,7 +713,8 @@ restarted_transaction: | |||
713 | } | 713 | } |
714 | 714 | ||
715 | mlog(0, "fe: i_clusters = %u, i_size=%llu\n", | 715 | mlog(0, "fe: i_clusters = %u, i_size=%llu\n", |
716 | fe->i_clusters, (unsigned long long)fe->i_size); | 716 | le32_to_cpu(fe->i_clusters), |
717 | (unsigned long long)le64_to_cpu(fe->i_size)); | ||
717 | mlog(0, "inode: ip_clusters=%u, i_size=%lld\n", | 718 | mlog(0, "inode: ip_clusters=%u, i_size=%lld\n", |
718 | OCFS2_I(inode)->ip_clusters, i_size_read(inode)); | 719 | OCFS2_I(inode)->ip_clusters, i_size_read(inode)); |
719 | 720 | ||
@@ -1853,6 +1854,9 @@ const struct file_operations ocfs2_fops = { | |||
1853 | .aio_read = ocfs2_file_aio_read, | 1854 | .aio_read = ocfs2_file_aio_read, |
1854 | .aio_write = ocfs2_file_aio_write, | 1855 | .aio_write = ocfs2_file_aio_write, |
1855 | .ioctl = ocfs2_ioctl, | 1856 | .ioctl = ocfs2_ioctl, |
1857 | #ifdef CONFIG_COMPAT | ||
1858 | .compat_ioctl = ocfs2_compat_ioctl, | ||
1859 | #endif | ||
1856 | .splice_read = ocfs2_file_splice_read, | 1860 | .splice_read = ocfs2_file_splice_read, |
1857 | .splice_write = ocfs2_file_splice_write, | 1861 | .splice_write = ocfs2_file_splice_write, |
1858 | }; | 1862 | }; |
@@ -1862,4 +1866,7 @@ const struct file_operations ocfs2_dops = { | |||
1862 | .readdir = ocfs2_readdir, | 1866 | .readdir = ocfs2_readdir, |
1863 | .fsync = ocfs2_sync_file, | 1867 | .fsync = ocfs2_sync_file, |
1864 | .ioctl = ocfs2_ioctl, | 1868 | .ioctl = ocfs2_ioctl, |
1869 | #ifdef CONFIG_COMPAT | ||
1870 | .compat_ioctl = ocfs2_compat_ioctl, | ||
1871 | #endif | ||
1865 | }; | 1872 | }; |
diff --git a/fs/ocfs2/file.h b/fs/ocfs2/file.h index 2c4460fced52..a4dd1fa1822b 100644 --- a/fs/ocfs2/file.h +++ b/fs/ocfs2/file.h | |||
@@ -56,11 +56,6 @@ int ocfs2_getattr(struct vfsmount *mnt, struct dentry *dentry, | |||
56 | int ocfs2_permission(struct inode *inode, int mask, | 56 | int ocfs2_permission(struct inode *inode, int mask, |
57 | struct nameidata *nd); | 57 | struct nameidata *nd); |
58 | 58 | ||
59 | int ocfs2_set_inode_size(handle_t *handle, | ||
60 | struct inode *inode, | ||
61 | struct buffer_head *fe_bh, | ||
62 | u64 new_i_size); | ||
63 | |||
64 | int ocfs2_should_update_atime(struct inode *inode, | 59 | int ocfs2_should_update_atime(struct inode *inode, |
65 | struct vfsmount *vfsmnt); | 60 | struct vfsmount *vfsmnt); |
66 | int ocfs2_update_inode_atime(struct inode *inode, | 61 | int ocfs2_update_inode_atime(struct inode *inode, |
diff --git a/fs/ocfs2/inode.c b/fs/ocfs2/inode.c index 21a605079c62..bc844bfe607c 100644 --- a/fs/ocfs2/inode.c +++ b/fs/ocfs2/inode.c | |||
@@ -89,6 +89,25 @@ void ocfs2_set_inode_flags(struct inode *inode) | |||
89 | inode->i_flags |= S_DIRSYNC; | 89 | inode->i_flags |= S_DIRSYNC; |
90 | } | 90 | } |
91 | 91 | ||
92 | /* Propagate flags from i_flags to OCFS2_I(inode)->ip_attr */ | ||
93 | void ocfs2_get_inode_flags(struct ocfs2_inode_info *oi) | ||
94 | { | ||
95 | unsigned int flags = oi->vfs_inode.i_flags; | ||
96 | |||
97 | oi->ip_attr &= ~(OCFS2_SYNC_FL|OCFS2_APPEND_FL| | ||
98 | OCFS2_IMMUTABLE_FL|OCFS2_NOATIME_FL|OCFS2_DIRSYNC_FL); | ||
99 | if (flags & S_SYNC) | ||
100 | oi->ip_attr |= OCFS2_SYNC_FL; | ||
101 | if (flags & S_APPEND) | ||
102 | oi->ip_attr |= OCFS2_APPEND_FL; | ||
103 | if (flags & S_IMMUTABLE) | ||
104 | oi->ip_attr |= OCFS2_IMMUTABLE_FL; | ||
105 | if (flags & S_NOATIME) | ||
106 | oi->ip_attr |= OCFS2_NOATIME_FL; | ||
107 | if (flags & S_DIRSYNC) | ||
108 | oi->ip_attr |= OCFS2_DIRSYNC_FL; | ||
109 | } | ||
110 | |||
92 | struct inode *ocfs2_iget(struct ocfs2_super *osb, u64 blkno, int flags) | 111 | struct inode *ocfs2_iget(struct ocfs2_super *osb, u64 blkno, int flags) |
93 | { | 112 | { |
94 | struct inode *inode = NULL; | 113 | struct inode *inode = NULL; |
@@ -196,7 +215,7 @@ int ocfs2_populate_inode(struct inode *inode, struct ocfs2_dinode *fe, | |||
196 | int status = -EINVAL; | 215 | int status = -EINVAL; |
197 | 216 | ||
198 | mlog_entry("(0x%p, size:%llu)\n", inode, | 217 | mlog_entry("(0x%p, size:%llu)\n", inode, |
199 | (unsigned long long)fe->i_size); | 218 | (unsigned long long)le64_to_cpu(fe->i_size)); |
200 | 219 | ||
201 | sb = inode->i_sb; | 220 | sb = inode->i_sb; |
202 | osb = OCFS2_SB(sb); | 221 | osb = OCFS2_SB(sb); |
@@ -248,7 +267,7 @@ int ocfs2_populate_inode(struct inode *inode, struct ocfs2_dinode *fe, | |||
248 | mlog(ML_ERROR, | 267 | mlog(ML_ERROR, |
249 | "ip_blkno %llu != i_blkno %llu!\n", | 268 | "ip_blkno %llu != i_blkno %llu!\n", |
250 | (unsigned long long)OCFS2_I(inode)->ip_blkno, | 269 | (unsigned long long)OCFS2_I(inode)->ip_blkno, |
251 | (unsigned long long)fe->i_blkno); | 270 | (unsigned long long)le64_to_cpu(fe->i_blkno)); |
252 | 271 | ||
253 | inode->i_nlink = le16_to_cpu(fe->i_links_count); | 272 | inode->i_nlink = le16_to_cpu(fe->i_links_count); |
254 | 273 | ||
@@ -301,7 +320,7 @@ int ocfs2_populate_inode(struct inode *inode, struct ocfs2_dinode *fe, | |||
301 | * the generation argument to | 320 | * the generation argument to |
302 | * ocfs2_inode_lock_res_init() will have to change. | 321 | * ocfs2_inode_lock_res_init() will have to change. |
303 | */ | 322 | */ |
304 | BUG_ON(fe->i_flags & cpu_to_le32(OCFS2_SYSTEM_FL)); | 323 | BUG_ON(le32_to_cpu(fe->i_flags) & OCFS2_SYSTEM_FL); |
305 | 324 | ||
306 | ocfs2_inode_lock_res_init(&OCFS2_I(inode)->ip_meta_lockres, | 325 | ocfs2_inode_lock_res_init(&OCFS2_I(inode)->ip_meta_lockres, |
307 | OCFS2_LOCK_TYPE_META, 0, inode); | 326 | OCFS2_LOCK_TYPE_META, 0, inode); |
@@ -437,7 +456,8 @@ static int ocfs2_read_locked_inode(struct inode *inode, | |||
437 | fe = (struct ocfs2_dinode *) bh->b_data; | 456 | fe = (struct ocfs2_dinode *) bh->b_data; |
438 | if (!OCFS2_IS_VALID_DINODE(fe)) { | 457 | if (!OCFS2_IS_VALID_DINODE(fe)) { |
439 | mlog(ML_ERROR, "Invalid dinode #%llu: signature = %.*s\n", | 458 | mlog(ML_ERROR, "Invalid dinode #%llu: signature = %.*s\n", |
440 | (unsigned long long)fe->i_blkno, 7, fe->i_signature); | 459 | (unsigned long long)le64_to_cpu(fe->i_blkno), 7, |
460 | fe->i_signature); | ||
441 | goto bail; | 461 | goto bail; |
442 | } | 462 | } |
443 | 463 | ||
@@ -812,8 +832,8 @@ static int ocfs2_query_inode_wipe(struct inode *inode, | |||
812 | "Inode %llu (on-disk %llu) not orphaned! " | 832 | "Inode %llu (on-disk %llu) not orphaned! " |
813 | "Disk flags 0x%x, inode flags 0x%x\n", | 833 | "Disk flags 0x%x, inode flags 0x%x\n", |
814 | (unsigned long long)oi->ip_blkno, | 834 | (unsigned long long)oi->ip_blkno, |
815 | (unsigned long long)di->i_blkno, di->i_flags, | 835 | (unsigned long long)le64_to_cpu(di->i_blkno), |
816 | oi->ip_flags); | 836 | le32_to_cpu(di->i_flags), oi->ip_flags); |
817 | goto bail; | 837 | goto bail; |
818 | } | 838 | } |
819 | 839 | ||
@@ -1106,8 +1126,10 @@ struct buffer_head *ocfs2_bread(struct inode *inode, | |||
1106 | return NULL; | 1126 | return NULL; |
1107 | } | 1127 | } |
1108 | 1128 | ||
1129 | down_read(&OCFS2_I(inode)->ip_alloc_sem); | ||
1109 | tmperr = ocfs2_extent_map_get_blocks(inode, block, &p_blkno, NULL, | 1130 | tmperr = ocfs2_extent_map_get_blocks(inode, block, &p_blkno, NULL, |
1110 | NULL); | 1131 | NULL); |
1132 | up_read(&OCFS2_I(inode)->ip_alloc_sem); | ||
1111 | if (tmperr < 0) { | 1133 | if (tmperr < 0) { |
1112 | mlog_errno(tmperr); | 1134 | mlog_errno(tmperr); |
1113 | goto fail; | 1135 | goto fail; |
@@ -1197,6 +1219,7 @@ int ocfs2_mark_inode_dirty(handle_t *handle, | |||
1197 | 1219 | ||
1198 | spin_lock(&OCFS2_I(inode)->ip_lock); | 1220 | spin_lock(&OCFS2_I(inode)->ip_lock); |
1199 | fe->i_clusters = cpu_to_le32(OCFS2_I(inode)->ip_clusters); | 1221 | fe->i_clusters = cpu_to_le32(OCFS2_I(inode)->ip_clusters); |
1222 | ocfs2_get_inode_flags(OCFS2_I(inode)); | ||
1200 | fe->i_attr = cpu_to_le32(OCFS2_I(inode)->ip_attr); | 1223 | fe->i_attr = cpu_to_le32(OCFS2_I(inode)->ip_attr); |
1201 | spin_unlock(&OCFS2_I(inode)->ip_lock); | 1224 | spin_unlock(&OCFS2_I(inode)->ip_lock); |
1202 | 1225 | ||
diff --git a/fs/ocfs2/inode.h b/fs/ocfs2/inode.h index 03ae075869ee..a41d0817121b 100644 --- a/fs/ocfs2/inode.h +++ b/fs/ocfs2/inode.h | |||
@@ -141,6 +141,7 @@ int ocfs2_aio_read(struct file *file, struct kiocb *req, struct iocb *iocb); | |||
141 | int ocfs2_aio_write(struct file *file, struct kiocb *req, struct iocb *iocb); | 141 | int ocfs2_aio_write(struct file *file, struct kiocb *req, struct iocb *iocb); |
142 | 142 | ||
143 | void ocfs2_set_inode_flags(struct inode *inode); | 143 | void ocfs2_set_inode_flags(struct inode *inode); |
144 | void ocfs2_get_inode_flags(struct ocfs2_inode_info *oi); | ||
144 | 145 | ||
145 | static inline blkcnt_t ocfs2_inode_sector_count(struct inode *inode) | 146 | static inline blkcnt_t ocfs2_inode_sector_count(struct inode *inode) |
146 | { | 147 | { |
diff --git a/fs/ocfs2/ioctl.c b/fs/ocfs2/ioctl.c index 4768be5f3086..f3ad21ad9aed 100644 --- a/fs/ocfs2/ioctl.c +++ b/fs/ocfs2/ioctl.c | |||
@@ -31,6 +31,7 @@ static int ocfs2_get_inode_attr(struct inode *inode, unsigned *flags) | |||
31 | mlog_errno(status); | 31 | mlog_errno(status); |
32 | return status; | 32 | return status; |
33 | } | 33 | } |
34 | ocfs2_get_inode_flags(OCFS2_I(inode)); | ||
34 | *flags = OCFS2_I(inode)->ip_attr; | 35 | *flags = OCFS2_I(inode)->ip_attr; |
35 | ocfs2_meta_unlock(inode, 0); | 36 | ocfs2_meta_unlock(inode, 0); |
36 | 37 | ||
@@ -134,3 +135,26 @@ int ocfs2_ioctl(struct inode * inode, struct file * filp, | |||
134 | } | 135 | } |
135 | } | 136 | } |
136 | 137 | ||
138 | #ifdef CONFIG_COMPAT | ||
139 | long ocfs2_compat_ioctl(struct file *file, unsigned cmd, unsigned long arg) | ||
140 | { | ||
141 | struct inode *inode = file->f_path.dentry->d_inode; | ||
142 | int ret; | ||
143 | |||
144 | switch (cmd) { | ||
145 | case OCFS2_IOC32_GETFLAGS: | ||
146 | cmd = OCFS2_IOC_GETFLAGS; | ||
147 | break; | ||
148 | case OCFS2_IOC32_SETFLAGS: | ||
149 | cmd = OCFS2_IOC_SETFLAGS; | ||
150 | break; | ||
151 | default: | ||
152 | return -ENOIOCTLCMD; | ||
153 | } | ||
154 | |||
155 | lock_kernel(); | ||
156 | ret = ocfs2_ioctl(inode, file, cmd, arg); | ||
157 | unlock_kernel(); | ||
158 | return ret; | ||
159 | } | ||
160 | #endif | ||
diff --git a/fs/ocfs2/ioctl.h b/fs/ocfs2/ioctl.h index 4a7c82931dba..4d6c4f430d0d 100644 --- a/fs/ocfs2/ioctl.h +++ b/fs/ocfs2/ioctl.h | |||
@@ -12,5 +12,6 @@ | |||
12 | 12 | ||
13 | int ocfs2_ioctl(struct inode * inode, struct file * filp, | 13 | int ocfs2_ioctl(struct inode * inode, struct file * filp, |
14 | unsigned int cmd, unsigned long arg); | 14 | unsigned int cmd, unsigned long arg); |
15 | long ocfs2_compat_ioctl(struct file *file, unsigned cmd, unsigned long arg); | ||
15 | 16 | ||
16 | #endif /* OCFS2_IOCTL_H */ | 17 | #endif /* OCFS2_IOCTL_H */ |
diff --git a/fs/ocfs2/journal.c b/fs/ocfs2/journal.c index 5a8a90d1c787..dc1188081720 100644 --- a/fs/ocfs2/journal.c +++ b/fs/ocfs2/journal.c | |||
@@ -435,7 +435,8 @@ static int ocfs2_journal_toggle_dirty(struct ocfs2_super *osb, | |||
435 | * handle the errors in a specific manner, so no need | 435 | * handle the errors in a specific manner, so no need |
436 | * to call ocfs2_error() here. */ | 436 | * to call ocfs2_error() here. */ |
437 | mlog(ML_ERROR, "Journal dinode %llu has invalid " | 437 | mlog(ML_ERROR, "Journal dinode %llu has invalid " |
438 | "signature: %.*s", (unsigned long long)fe->i_blkno, 7, | 438 | "signature: %.*s", |
439 | (unsigned long long)le64_to_cpu(fe->i_blkno), 7, | ||
439 | fe->i_signature); | 440 | fe->i_signature); |
440 | status = -EIO; | 441 | status = -EIO; |
441 | goto out; | 442 | goto out; |
@@ -742,7 +743,7 @@ void ocfs2_complete_recovery(struct work_struct *work) | |||
742 | la_dinode = item->lri_la_dinode; | 743 | la_dinode = item->lri_la_dinode; |
743 | if (la_dinode) { | 744 | if (la_dinode) { |
744 | mlog(0, "Clean up local alloc %llu\n", | 745 | mlog(0, "Clean up local alloc %llu\n", |
745 | (unsigned long long)la_dinode->i_blkno); | 746 | (unsigned long long)le64_to_cpu(la_dinode->i_blkno)); |
746 | 747 | ||
747 | ret = ocfs2_complete_local_alloc_recovery(osb, | 748 | ret = ocfs2_complete_local_alloc_recovery(osb, |
748 | la_dinode); | 749 | la_dinode); |
@@ -755,7 +756,7 @@ void ocfs2_complete_recovery(struct work_struct *work) | |||
755 | tl_dinode = item->lri_tl_dinode; | 756 | tl_dinode = item->lri_tl_dinode; |
756 | if (tl_dinode) { | 757 | if (tl_dinode) { |
757 | mlog(0, "Clean up truncate log %llu\n", | 758 | mlog(0, "Clean up truncate log %llu\n", |
758 | (unsigned long long)tl_dinode->i_blkno); | 759 | (unsigned long long)le64_to_cpu(tl_dinode->i_blkno)); |
759 | 760 | ||
760 | ret = ocfs2_complete_truncate_log_recovery(osb, | 761 | ret = ocfs2_complete_truncate_log_recovery(osb, |
761 | tl_dinode); | 762 | tl_dinode); |
diff --git a/fs/ocfs2/namei.c b/fs/ocfs2/namei.c index 2bcf353fd7c5..36289e6295ce 100644 --- a/fs/ocfs2/namei.c +++ b/fs/ocfs2/namei.c | |||
@@ -578,8 +578,9 @@ static int ocfs2_mknod_locked(struct ocfs2_super *osb, | |||
578 | if (ocfs2_populate_inode(inode, fe, 1) < 0) { | 578 | if (ocfs2_populate_inode(inode, fe, 1) < 0) { |
579 | mlog(ML_ERROR, "populate inode failed! bh->b_blocknr=%llu, " | 579 | mlog(ML_ERROR, "populate inode failed! bh->b_blocknr=%llu, " |
580 | "i_blkno=%llu, i_ino=%lu\n", | 580 | "i_blkno=%llu, i_ino=%lu\n", |
581 | (unsigned long long) (*new_fe_bh)->b_blocknr, | 581 | (unsigned long long)(*new_fe_bh)->b_blocknr, |
582 | (unsigned long long)fe->i_blkno, inode->i_ino); | 582 | (unsigned long long)le64_to_cpu(fe->i_blkno), |
583 | inode->i_ino); | ||
583 | BUG(); | 584 | BUG(); |
584 | } | 585 | } |
585 | 586 | ||
diff --git a/fs/ocfs2/ocfs2.h b/fs/ocfs2/ocfs2.h index 82cc92dcf8a6..a860633e833f 100644 --- a/fs/ocfs2/ocfs2.h +++ b/fs/ocfs2/ocfs2.h | |||
@@ -363,9 +363,9 @@ static inline int ocfs2_mount_local(struct ocfs2_super *osb) | |||
363 | typeof(__di) ____di = (__di); \ | 363 | typeof(__di) ____di = (__di); \ |
364 | ocfs2_error((__sb), \ | 364 | ocfs2_error((__sb), \ |
365 | "Dinode # %llu has bad signature %.*s", \ | 365 | "Dinode # %llu has bad signature %.*s", \ |
366 | (unsigned long long)(____di)->i_blkno, 7, \ | 366 | (unsigned long long)le64_to_cpu((____di)->i_blkno), 7, \ |
367 | (____di)->i_signature); \ | 367 | (____di)->i_signature); \ |
368 | } while (0); | 368 | } while (0) |
369 | 369 | ||
370 | #define OCFS2_IS_VALID_EXTENT_BLOCK(ptr) \ | 370 | #define OCFS2_IS_VALID_EXTENT_BLOCK(ptr) \ |
371 | (!strcmp((ptr)->h_signature, OCFS2_EXTENT_BLOCK_SIGNATURE)) | 371 | (!strcmp((ptr)->h_signature, OCFS2_EXTENT_BLOCK_SIGNATURE)) |
@@ -374,9 +374,9 @@ static inline int ocfs2_mount_local(struct ocfs2_super *osb) | |||
374 | typeof(__eb) ____eb = (__eb); \ | 374 | typeof(__eb) ____eb = (__eb); \ |
375 | ocfs2_error((__sb), \ | 375 | ocfs2_error((__sb), \ |
376 | "Extent Block # %llu has bad signature %.*s", \ | 376 | "Extent Block # %llu has bad signature %.*s", \ |
377 | (unsigned long long)(____eb)->h_blkno, 7, \ | 377 | (unsigned long long)le64_to_cpu((____eb)->h_blkno), 7, \ |
378 | (____eb)->h_signature); \ | 378 | (____eb)->h_signature); \ |
379 | } while (0); | 379 | } while (0) |
380 | 380 | ||
381 | #define OCFS2_IS_VALID_GROUP_DESC(ptr) \ | 381 | #define OCFS2_IS_VALID_GROUP_DESC(ptr) \ |
382 | (!strcmp((ptr)->bg_signature, OCFS2_GROUP_DESC_SIGNATURE)) | 382 | (!strcmp((ptr)->bg_signature, OCFS2_GROUP_DESC_SIGNATURE)) |
@@ -385,9 +385,9 @@ static inline int ocfs2_mount_local(struct ocfs2_super *osb) | |||
385 | typeof(__gd) ____gd = (__gd); \ | 385 | typeof(__gd) ____gd = (__gd); \ |
386 | ocfs2_error((__sb), \ | 386 | ocfs2_error((__sb), \ |
387 | "Group Descriptor # %llu has bad signature %.*s", \ | 387 | "Group Descriptor # %llu has bad signature %.*s", \ |
388 | (unsigned long long)(____gd)->bg_blkno, 7, \ | 388 | (unsigned long long)le64_to_cpu((____gd)->bg_blkno), 7, \ |
389 | (____gd)->bg_signature); \ | 389 | (____gd)->bg_signature); \ |
390 | } while (0); | 390 | } while (0) |
391 | 391 | ||
392 | static inline unsigned long ino_from_blkno(struct super_block *sb, | 392 | static inline unsigned long ino_from_blkno(struct super_block *sb, |
393 | u64 blkno) | 393 | u64 blkno) |
diff --git a/fs/ocfs2/ocfs2_fs.h b/fs/ocfs2/ocfs2_fs.h index 71306479c68f..f0d9eb08547a 100644 --- a/fs/ocfs2/ocfs2_fs.h +++ b/fs/ocfs2/ocfs2_fs.h | |||
@@ -166,6 +166,8 @@ | |||
166 | */ | 166 | */ |
167 | #define OCFS2_IOC_GETFLAGS _IOR('f', 1, long) | 167 | #define OCFS2_IOC_GETFLAGS _IOR('f', 1, long) |
168 | #define OCFS2_IOC_SETFLAGS _IOW('f', 2, long) | 168 | #define OCFS2_IOC_SETFLAGS _IOW('f', 2, long) |
169 | #define OCFS2_IOC32_GETFLAGS _IOR('f', 1, int) | ||
170 | #define OCFS2_IOC32_SETFLAGS _IOW('f', 2, int) | ||
169 | 171 | ||
170 | /* | 172 | /* |
171 | * Journal Flags (ocfs2_dinode.id1.journal1.i_flags) | 173 | * Journal Flags (ocfs2_dinode.id1.journal1.i_flags) |
diff --git a/fs/ocfs2/suballoc.c b/fs/ocfs2/suballoc.c index 0da655ae5d6f..e3437626d183 100644 --- a/fs/ocfs2/suballoc.c +++ b/fs/ocfs2/suballoc.c | |||
@@ -849,9 +849,9 @@ static int ocfs2_relink_block_group(handle_t *handle, | |||
849 | } | 849 | } |
850 | 850 | ||
851 | mlog(0, "Suballoc %llu, chain %u, move group %llu to top, prev = %llu\n", | 851 | mlog(0, "Suballoc %llu, chain %u, move group %llu to top, prev = %llu\n", |
852 | (unsigned long long)fe->i_blkno, chain, | 852 | (unsigned long long)le64_to_cpu(fe->i_blkno), chain, |
853 | (unsigned long long)bg->bg_blkno, | 853 | (unsigned long long)le64_to_cpu(bg->bg_blkno), |
854 | (unsigned long long)prev_bg->bg_blkno); | 854 | (unsigned long long)le64_to_cpu(prev_bg->bg_blkno)); |
855 | 855 | ||
856 | fe_ptr = le64_to_cpu(fe->id2.i_chain.cl_recs[chain].c_blkno); | 856 | fe_ptr = le64_to_cpu(fe->id2.i_chain.cl_recs[chain].c_blkno); |
857 | bg_ptr = le64_to_cpu(bg->bg_next_group); | 857 | bg_ptr = le64_to_cpu(bg->bg_next_group); |
@@ -1162,7 +1162,7 @@ static int ocfs2_search_chain(struct ocfs2_alloc_context *ac, | |||
1162 | } | 1162 | } |
1163 | 1163 | ||
1164 | mlog(0, "alloc succeeds: we give %u bits from block group %llu\n", | 1164 | mlog(0, "alloc succeeds: we give %u bits from block group %llu\n", |
1165 | tmp_bits, (unsigned long long)bg->bg_blkno); | 1165 | tmp_bits, (unsigned long long)le64_to_cpu(bg->bg_blkno)); |
1166 | 1166 | ||
1167 | *num_bits = tmp_bits; | 1167 | *num_bits = tmp_bits; |
1168 | 1168 | ||
@@ -1227,7 +1227,7 @@ static int ocfs2_search_chain(struct ocfs2_alloc_context *ac, | |||
1227 | } | 1227 | } |
1228 | 1228 | ||
1229 | mlog(0, "Allocated %u bits from suballocator %llu\n", *num_bits, | 1229 | mlog(0, "Allocated %u bits from suballocator %llu\n", *num_bits, |
1230 | (unsigned long long)fe->i_blkno); | 1230 | (unsigned long long)le64_to_cpu(fe->i_blkno)); |
1231 | 1231 | ||
1232 | *bg_blkno = le64_to_cpu(bg->bg_blkno); | 1232 | *bg_blkno = le64_to_cpu(bg->bg_blkno); |
1233 | *bits_left = le16_to_cpu(bg->bg_free_bits_count); | 1233 | *bits_left = le16_to_cpu(bg->bg_free_bits_count); |
diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c index 5c9e8243691f..f5493540d94f 100644 --- a/fs/ocfs2/super.c +++ b/fs/ocfs2/super.c | |||
@@ -1538,7 +1538,7 @@ static int ocfs2_verify_volume(struct ocfs2_dinode *di, | |||
1538 | } else if (bh->b_blocknr != le64_to_cpu(di->i_blkno)) { | 1538 | } else if (bh->b_blocknr != le64_to_cpu(di->i_blkno)) { |
1539 | mlog(ML_ERROR, "bad block number on superblock: " | 1539 | mlog(ML_ERROR, "bad block number on superblock: " |
1540 | "found %llu, should be %llu\n", | 1540 | "found %llu, should be %llu\n", |
1541 | (unsigned long long)di->i_blkno, | 1541 | (unsigned long long)le64_to_cpu(di->i_blkno), |
1542 | (unsigned long long)bh->b_blocknr); | 1542 | (unsigned long long)bh->b_blocknr); |
1543 | } else if (le32_to_cpu(di->id2.i_super.s_clustersize_bits) < 12 || | 1543 | } else if (le32_to_cpu(di->id2.i_super.s_clustersize_bits) < 12 || |
1544 | le32_to_cpu(di->id2.i_super.s_clustersize_bits) > 20) { | 1544 | le32_to_cpu(di->id2.i_super.s_clustersize_bits) > 20) { |