~ubuntu-branches/ubuntu/precise/linux-lowlatency/precise-proposed

« back to all changes in this revision

Viewing changes to fs/ext4/ext4_jbd2.h

  • Committer: Package Import Robot
  • Author(s): Luke Yelavich, Luke Yelavich, Upstream Kernel Changes
  • Date: 2012-04-04 18:49:36 UTC
  • Revision ID: package-import@ubuntu.com-20120404184936-tqu735914muv4wpg
Tags: 3.2.0-22.30
[ Luke Yelavich ]

* [Config] Update configs after rebase against Ubuntu-3.2.0-22.35

[ Upstream Kernel Changes ]

* Low-latency: Rebase against Ubuntu-3.2.0-22.35

Show diffs side-by-side

added added

removed removed

Lines of Context:
261
261
/* super.c */
262
262
int ext4_force_commit(struct super_block *sb);
263
263
 
 
264
/*
 
265
 * Ext4 inode journal modes
 
266
 */
 
267
#define EXT4_INODE_JOURNAL_DATA_MODE    0x01 /* journal data mode */
 
268
#define EXT4_INODE_ORDERED_DATA_MODE    0x02 /* ordered data mode */
 
269
#define EXT4_INODE_WRITEBACK_DATA_MODE  0x04 /* writeback data mode */
 
270
 
 
271
static inline int ext4_inode_journal_mode(struct inode *inode)
 
272
{
 
273
        if (EXT4_JOURNAL(inode) == NULL)
 
274
                return EXT4_INODE_WRITEBACK_DATA_MODE;  /* writeback */
 
275
        /* We do not support data journalling with delayed allocation */
 
276
        if (!S_ISREG(inode->i_mode) ||
 
277
            test_opt(inode->i_sb, DATA_FLAGS) == EXT4_MOUNT_JOURNAL_DATA)
 
278
                return EXT4_INODE_JOURNAL_DATA_MODE;    /* journal data */
 
279
        if (ext4_test_inode_flag(inode, EXT4_INODE_JOURNAL_DATA) &&
 
280
            !test_opt(inode->i_sb, DELALLOC))
 
281
                return EXT4_INODE_JOURNAL_DATA_MODE;    /* journal data */
 
282
        if (test_opt(inode->i_sb, DATA_FLAGS) == EXT4_MOUNT_ORDERED_DATA)
 
283
                return EXT4_INODE_ORDERED_DATA_MODE;    /* ordered */
 
284
        if (test_opt(inode->i_sb, DATA_FLAGS) == EXT4_MOUNT_WRITEBACK_DATA)
 
285
                return EXT4_INODE_WRITEBACK_DATA_MODE;  /* writeback */
 
286
        else
 
287
                BUG();
 
288
}
 
289
 
264
290
static inline int ext4_should_journal_data(struct inode *inode)
265
291
{
266
 
        if (EXT4_JOURNAL(inode) == NULL)
267
 
                return 0;
268
 
        if (!S_ISREG(inode->i_mode))
269
 
                return 1;
270
 
        if (test_opt(inode->i_sb, DATA_FLAGS) == EXT4_MOUNT_JOURNAL_DATA)
271
 
                return 1;
272
 
        if (ext4_test_inode_flag(inode, EXT4_INODE_JOURNAL_DATA))
273
 
                return 1;
274
 
        return 0;
 
292
        return ext4_inode_journal_mode(inode) & EXT4_INODE_JOURNAL_DATA_MODE;
275
293
}
276
294
 
277
295
static inline int ext4_should_order_data(struct inode *inode)
278
296
{
279
 
        if (EXT4_JOURNAL(inode) == NULL)
280
 
                return 0;
281
 
        if (!S_ISREG(inode->i_mode))
282
 
                return 0;
283
 
        if (ext4_test_inode_flag(inode, EXT4_INODE_JOURNAL_DATA))
284
 
                return 0;
285
 
        if (test_opt(inode->i_sb, DATA_FLAGS) == EXT4_MOUNT_ORDERED_DATA)
286
 
                return 1;
287
 
        return 0;
 
297
        return ext4_inode_journal_mode(inode) & EXT4_INODE_ORDERED_DATA_MODE;
288
298
}
289
299
 
290
300
static inline int ext4_should_writeback_data(struct inode *inode)
291
301
{
292
 
        if (EXT4_JOURNAL(inode) == NULL)
293
 
                return 1;
294
 
        if (!S_ISREG(inode->i_mode))
295
 
                return 0;
296
 
        if (ext4_test_inode_flag(inode, EXT4_INODE_JOURNAL_DATA))
297
 
                return 0;
298
 
        if (test_opt(inode->i_sb, DATA_FLAGS) == EXT4_MOUNT_WRITEBACK_DATA)
299
 
                return 1;
300
 
        return 0;
 
302
        return ext4_inode_journal_mode(inode) & EXT4_INODE_WRITEBACK_DATA_MODE;
301
303
}
302
304
 
303
305
/*