~ubuntu-branches/ubuntu/trusty/linux-armadaxp/trusty

« back to all changes in this revision

Viewing changes to include/linux/jbd2.h

  • Committer: Package Import Robot
  • Author(s): Michael Casadevall, Bryan Wu, Dann Frazier, Michael Casadeall
  • Date: 2012-03-10 15:00:54 UTC
  • mfrom: (1.1.1)
  • Revision ID: package-import@ubuntu.com-20120310150054-flugb39zon8vvgwe
Tags: 3.2.0-1600.1
[ Bryan Wu ]
* UBUNTU: import debian/debian.env and debian.armadaxp

[ Dann Frazier ]
* ARM: Armada XP: remove trailing '/' in dirnames in mvRules.mk

[ Michael Casadeall ]
* tools: add some tools for Marvell Armada XP processor
* kernel: timer tick hacking from Marvell
* kernel: Sheeva Errata: add delay on Sheeva when powering down
* net: add Marvell NFP netfilter
* net: socket and skb modifications made by Marvell
* miscdevice: add minor IDs for some Marvell Armada drivers
* fs: introduce memory pool for splice()
* video: EDID detection updates from Marvell Armada XP patchset
* video: backlight: add Marvell Dove LCD backlight driver
* video: display: add THS8200 display driver
* video: framebuffer: add Marvell Dove and Armada XP processor onchip LCD controller driver
* usbtest: add Interrupt transfer testing by Marvell Armada XP code
* usb: ehci: add support for Marvell EHCI controler
* tty/serial: 8250: add support for Marvell Armada XP processor and DeviceTree work
* rtc: add support for Marvell Armada XP onchip RTC controller
* net: pppoe: add Marvell ethernet NFP hook in PPPoE networking driver
* mtd: nand: add support for Marvell Armada XP Nand Flash Controller
* mtd: maps: add Marvell Armada XP specific map driver
* mmc: add support for Marvell Armada XP MMC/SD host controller
* i2c: add support for Marvell Armada XP onchip i2c bus controller
* hwmon: add Kconfig option for Armada XP onchip thermal sensor driver
* dmaengine: add Net DMA support for splice and update Marvell XOR DMA engine driver
* ata: add support for Marvell Armada XP SATA controller and update some quirks
* ARM: add Marvell Armada XP machine to mach-types
* ARM: oprofile: add support for Marvell PJ4B core
* ARM: mm: more ARMv6 switches for Marvell Armada XP
* ARM: remove static declaration to allow compilation
* ARM: alignment access fault trick
* ARM: mm: skip some fault fixing when run on NONE SMP ARMv6 mode during early abort event
* ARM: mm: add Marvell Sheeva CPU Architecture for PJ4B
* ARM: introduce optimized copy operation for Marvell Armada XP
* ARM: SAUCE: hardware breakpoint trick for Marvell Armada XP
* ARM: big endian and little endian tricks for Marvell Armada XP
* ARM: SAUCE: Add Marvell Armada XP build rules to arch/arm/kernel/Makefile
* ARM: vfp: add special handling for Marvell Armada XP
* ARM: add support for Marvell U-Boot
* ARM: add mv_controller_num for ARM PCI drivers
* ARM: add support for local PMUs, general SMP tweaks and cache flushing
* ARM: add Marvell device identifies in glue-proc.h
* ARM: add IPC driver support for Marvell platforms
* ARM: add DMA mapping for Marvell platforms
* ARM: add Sheeva errata and PJ4B code for booting
* ARM: update Kconfig and Makefile to include Marvell Armada XP platforms
* ARM: Armada XP: import LSP from Marvell for Armada XP 3.2 kernel enablement

Show diffs side-by-side

added added

removed removed

Lines of Context:
275
275
 
276
276
#include <linux/fs.h>
277
277
#include <linux/sched.h>
 
278
#include <linux/jbd_common.h>
278
279
 
279
280
#define J_ASSERT(assert)        BUG_ON(!(assert))
280
281
 
302
303
#define J_EXPECT_JH(jh, expr, why...)   __journal_expect(expr, ## why)
303
304
#endif
304
305
 
305
 
enum jbd_state_bits {
306
 
        BH_JBD                  /* Has an attached ext3 journal_head */
307
 
          = BH_PrivateStart,
308
 
        BH_JWrite,              /* Being written to log (@@@ DEBUGGING) */
309
 
        BH_Freed,               /* Has been freed (truncated) */
310
 
        BH_Revoked,             /* Has been revoked from the log */
311
 
        BH_RevokeValid,         /* Revoked flag is valid */
312
 
        BH_JBDDirty,            /* Is dirty but journaled */
313
 
        BH_State,               /* Pins most journal_head state */
314
 
        BH_JournalHead,         /* Pins bh->b_private and jh->b_bh */
315
 
        BH_Unshadow,            /* Dummy bit, for BJ_Shadow wakeup filtering */
316
 
        BH_JBDPrivateStart,     /* First bit available for private use by FS */
317
 
};
318
 
 
319
 
BUFFER_FNS(JBD, jbd)
320
 
BUFFER_FNS(JWrite, jwrite)
321
 
BUFFER_FNS(JBDDirty, jbddirty)
322
 
TAS_BUFFER_FNS(JBDDirty, jbddirty)
323
 
BUFFER_FNS(Revoked, revoked)
324
 
TAS_BUFFER_FNS(Revoked, revoked)
325
 
BUFFER_FNS(RevokeValid, revokevalid)
326
 
TAS_BUFFER_FNS(RevokeValid, revokevalid)
327
 
BUFFER_FNS(Freed, freed)
328
 
 
329
 
static inline struct buffer_head *jh2bh(struct journal_head *jh)
330
 
{
331
 
        return jh->b_bh;
332
 
}
333
 
 
334
 
static inline struct journal_head *bh2jh(struct buffer_head *bh)
335
 
{
336
 
        return bh->b_private;
337
 
}
338
 
 
339
 
static inline void jbd_lock_bh_state(struct buffer_head *bh)
340
 
{
341
 
        bit_spin_lock(BH_State, &bh->b_state);
342
 
}
343
 
 
344
 
static inline int jbd_trylock_bh_state(struct buffer_head *bh)
345
 
{
346
 
        return bit_spin_trylock(BH_State, &bh->b_state);
347
 
}
348
 
 
349
 
static inline int jbd_is_locked_bh_state(struct buffer_head *bh)
350
 
{
351
 
        return bit_spin_is_locked(BH_State, &bh->b_state);
352
 
}
353
 
 
354
 
static inline void jbd_unlock_bh_state(struct buffer_head *bh)
355
 
{
356
 
        bit_spin_unlock(BH_State, &bh->b_state);
357
 
}
358
 
 
359
 
static inline void jbd_lock_bh_journal_head(struct buffer_head *bh)
360
 
{
361
 
        bit_spin_lock(BH_JournalHead, &bh->b_state);
362
 
}
363
 
 
364
 
static inline void jbd_unlock_bh_journal_head(struct buffer_head *bh)
365
 
{
366
 
        bit_spin_unlock(BH_JournalHead, &bh->b_state);
367
 
}
368
 
 
369
306
/* Flags in jbd_inode->i_flags */
370
307
#define __JI_COMMIT_RUNNING 0
371
308
/* Commit of the inode data in progress. We use this flag to protect us from
1106
1043
 */
1107
1044
 
1108
1045
extern handle_t *jbd2_journal_start(journal_t *, int nblocks);
1109
 
extern handle_t *jbd2__journal_start(journal_t *, int nblocks, int gfp_mask);
 
1046
extern handle_t *jbd2__journal_start(journal_t *, int nblocks, gfp_t gfp_mask);
1110
1047
extern int       jbd2_journal_restart(handle_t *, int nblocks);
1111
 
extern int       jbd2__journal_restart(handle_t *, int nblocks, int gfp_mask);
 
1048
extern int       jbd2__journal_restart(handle_t *, int nblocks, gfp_t gfp_mask);
1112
1049
extern int       jbd2_journal_extend (handle_t *, int nblocks);
1113
1050
extern int       jbd2_journal_get_write_access(handle_t *, struct buffer_head *);
1114
1051
extern int       jbd2_journal_get_create_access (handle_t *, struct buffer_head *);
1329
1266
#define BUFFER_TRACE2(bh, bh2, info)    do {} while (0)
1330
1267
#define JBUFFER_TRACE(jh, info) do {} while (0)
1331
1268
 
1332
 
/* 
1333
 
 * jbd2_dev_to_name is a utility function used by the jbd2 and ext4 
1334
 
 * tracing infrastructure to map a dev_t to a device name.
1335
 
 */
1336
 
extern const char *jbd2_dev_to_name(dev_t device);
1337
 
 
1338
1269
#endif  /* __KERNEL__ */
1339
1270
 
1340
1271
#endif  /* _LINUX_JBD2_H */