]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - fs/ocfs2/inode.c
Merge current mainline tree into linux-omap tree
[linux-2.6-omap-h63xx.git] / fs / ocfs2 / inode.c
index bc844bfe607c8ac8a8716b63bcb07c004e5b9fcb..ebb2bbe30f358b9384662ee0f3d182a74db83c66 100644 (file)
@@ -28,7 +28,6 @@
 #include <linux/slab.h>
 #include <linux/highmem.h>
 #include <linux/pagemap.h>
-#include <linux/smp_lock.h>
 
 #include <asm/byteorder.h>
 
@@ -242,6 +241,7 @@ int ocfs2_populate_inode(struct inode *inode, struct ocfs2_dinode *fe,
 
        OCFS2_I(inode)->ip_clusters = le32_to_cpu(fe->i_clusters);
        OCFS2_I(inode)->ip_attr = le32_to_cpu(fe->i_attr);
+       OCFS2_I(inode)->ip_dyn_features = le16_to_cpu(fe->i_dyn_features);
 
        inode->i_version = 1;
        inode->i_generation = le32_to_cpu(fe->i_generation);
@@ -455,8 +455,8 @@ static int ocfs2_read_locked_inode(struct inode *inode,
        status = -EINVAL;
        fe = (struct ocfs2_dinode *) bh->b_data;
        if (!OCFS2_IS_VALID_DINODE(fe)) {
-               mlog(ML_ERROR, "Invalid dinode #%llu: signature = %.*s\n",
-                    (unsigned long long)le64_to_cpu(fe->i_blkno), 7,
+               mlog(0, "Invalid dinode #%llu: signature = %.*s\n",
+                    (unsigned long long)args->fi_blkno, 7,
                     fe->i_signature);
                goto bail;
        }
@@ -514,6 +514,10 @@ static int ocfs2_truncate_for_delete(struct ocfs2_super *osb,
 
        fe = (struct ocfs2_dinode *) fe_bh->b_data;
 
+       /*
+        * This check will also skip truncate of inodes with inline
+        * data and fast symlinks.
+        */
        if (fe->i_clusters) {
                handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS);
                if (IS_ERR(handle)) {
@@ -859,7 +863,7 @@ static int ocfs2_query_inode_wipe(struct inode *inode,
        status = ocfs2_try_open_lock(inode, 1);
        if (status == -EAGAIN) {
                status = 0;
-               mlog(0, "Skipping delete of %llu because it is in use on"
+               mlog(0, "Skipping delete of %llu because it is in use on "
                     "other nodes\n", (unsigned long long)oi->ip_blkno);
                goto bail;
        }
@@ -1221,6 +1225,7 @@ int ocfs2_mark_inode_dirty(handle_t *handle,
        fe->i_clusters = cpu_to_le32(OCFS2_I(inode)->ip_clusters);
        ocfs2_get_inode_flags(OCFS2_I(inode));
        fe->i_attr = cpu_to_le32(OCFS2_I(inode)->ip_attr);
+       fe->i_dyn_features = cpu_to_le16(OCFS2_I(inode)->ip_dyn_features);
        spin_unlock(&OCFS2_I(inode)->ip_lock);
 
        fe->i_size = cpu_to_le64(i_size_read(inode));
@@ -1258,6 +1263,7 @@ void ocfs2_refresh_inode(struct inode *inode,
 
        OCFS2_I(inode)->ip_clusters = le32_to_cpu(fe->i_clusters);
        OCFS2_I(inode)->ip_attr = le32_to_cpu(fe->i_attr);
+       OCFS2_I(inode)->ip_dyn_features = le16_to_cpu(fe->i_dyn_features);
        ocfs2_set_inode_flags(inode);
        i_size_write(inode, le64_to_cpu(fe->i_size));
        inode->i_nlink = le16_to_cpu(fe->i_links_count);