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

« back to all changes in this revision

Viewing changes to fs/nfs/nfs4_fs.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:
13
13
 
14
14
struct idmap;
15
15
 
16
 
/*
17
 
 * In a seqid-mutating op, this macro controls which error return
18
 
 * values trigger incrementation of the seqid.
19
 
 *
20
 
 * from rfc 3010:
21
 
 * The client MUST monotonically increment the sequence number for the
22
 
 * CLOSE, LOCK, LOCKU, OPEN, OPEN_CONFIRM, and OPEN_DOWNGRADE
23
 
 * operations.  This is true even in the event that the previous
24
 
 * operation that used the sequence number received an error.  The only
25
 
 * exception to this rule is if the previous operation received one of
26
 
 * the following errors: NFSERR_STALE_CLIENTID, NFSERR_STALE_STATEID,
27
 
 * NFSERR_BAD_STATEID, NFSERR_BAD_SEQID, NFSERR_BADXDR,
28
 
 * NFSERR_RESOURCE, NFSERR_NOFILEHANDLE.
29
 
 *
30
 
 */
31
 
#define seqid_mutating_err(err)       \
32
 
(((err) != NFSERR_STALE_CLIENTID) &&  \
33
 
 ((err) != NFSERR_STALE_STATEID)  &&  \
34
 
 ((err) != NFSERR_BAD_STATEID)    &&  \
35
 
 ((err) != NFSERR_BAD_SEQID)      &&  \
36
 
 ((err) != NFSERR_BAD_XDR)        &&  \
37
 
 ((err) != NFSERR_RESOURCE)       &&  \
38
 
 ((err) != NFSERR_NOFILEHANDLE))
39
 
 
40
16
enum nfs4_client_state {
41
17
        NFS4CLNT_MANAGER_RUNNING  = 0,
42
18
        NFS4CLNT_CHECK_LEASE,
48
24
        NFS4CLNT_SESSION_RESET,
49
25
        NFS4CLNT_RECALL_SLOT,
50
26
        NFS4CLNT_LEASE_CONFIRM,
 
27
        NFS4CLNT_SERVER_SCOPE_MISMATCH,
51
28
};
52
29
 
53
30
enum nfs4_session_state {
55
32
        NFS4_SESSION_DRAINING,
56
33
};
57
34
 
 
35
#define NFS4_RENEW_TIMEOUT              0x01
 
36
#define NFS4_RENEW_DELEGATION_CB        0x02
 
37
 
58
38
struct nfs4_minor_version_ops {
59
39
        u32     minor_version;
60
40
 
66
46
                        int cache_reply);
67
47
        int     (*validate_stateid)(struct nfs_delegation *,
68
48
                        const nfs4_stateid *);
 
49
        int     (*find_root_sec)(struct nfs_server *, struct nfs_fh *,
 
50
                        struct nfs_fsinfo *);
69
51
        const struct nfs4_state_recovery_ops *reboot_recovery_ops;
70
52
        const struct nfs4_state_recovery_ops *nograce_recovery_ops;
71
53
        const struct nfs4_state_maintenance_ops *state_renewal_ops;
222
204
};
223
205
 
224
206
struct nfs4_state_maintenance_ops {
225
 
        int (*sched_state_renewal)(struct nfs_client *, struct rpc_cred *);
 
207
        int (*sched_state_renewal)(struct nfs_client *, struct rpc_cred *, unsigned);
226
208
        struct rpc_cred * (*get_state_renewal_cred_locked)(struct nfs_client *);
227
209
        int (*renew_lease)(struct nfs_client *, struct rpc_cred *);
228
210
};
234
216
extern int nfs4_proc_setclientid(struct nfs_client *, u32, unsigned short, struct rpc_cred *, struct nfs4_setclientid_res *);
235
217
extern int nfs4_proc_setclientid_confirm(struct nfs_client *, struct nfs4_setclientid_res *arg, struct rpc_cred *);
236
218
extern int nfs4_proc_exchange_id(struct nfs_client *clp, struct rpc_cred *cred);
237
 
extern int nfs4_proc_async_renew(struct nfs_client *, struct rpc_cred *);
238
 
extern int nfs4_proc_renew(struct nfs_client *, struct rpc_cred *);
239
219
extern int nfs4_init_clientid(struct nfs_client *, struct rpc_cred *);
240
220
extern int nfs41_init_clientid(struct nfs_client *, struct rpc_cred *);
241
 
extern int nfs4_do_close(struct path *path, struct nfs4_state *state, gfp_t gfp_mask, int wait, bool roc);
 
221
extern int nfs4_do_close(struct nfs4_state *state, gfp_t gfp_mask, int wait, bool roc);
242
222
extern int nfs4_server_capabilities(struct nfs_server *server, struct nfs_fh *fhandle);
243
223
extern int nfs4_proc_fs_locations(struct inode *dir, const struct qstr *name,
244
224
                struct nfs4_fs_locations *fs_locations, struct page *page);
315
295
extern const u32 nfs4_fattr_bitmap[2];
316
296
extern const u32 nfs4_statfs_bitmap[2];
317
297
extern const u32 nfs4_pathconf_bitmap[2];
318
 
extern const u32 nfs4_fsinfo_bitmap[2];
 
298
extern const u32 nfs4_fsinfo_bitmap[3];
319
299
extern const u32 nfs4_fs_locations_bitmap[2];
320
300
 
321
301
/* nfs4renewd.c */
341
321
extern void nfs4_put_state_owner(struct nfs4_state_owner *);
342
322
extern struct nfs4_state * nfs4_get_open_state(struct inode *, struct nfs4_state_owner *);
343
323
extern void nfs4_put_open_state(struct nfs4_state *);
344
 
extern void nfs4_close_state(struct path *, struct nfs4_state *, fmode_t);
345
 
extern void nfs4_close_sync(struct path *, struct nfs4_state *, fmode_t);
 
324
extern void nfs4_close_state(struct nfs4_state *, fmode_t);
 
325
extern void nfs4_close_sync(struct nfs4_state *, fmode_t);
346
326
extern void nfs4_state_set_mode_locked(struct nfs4_state *, fmode_t);
347
327
extern void nfs4_schedule_lease_recovery(struct nfs_client *);
348
328
extern void nfs4_schedule_state_manager(struct nfs_client *);
 
329
extern void nfs4_schedule_path_down_recovery(struct nfs_client *clp);
349
330
extern void nfs4_schedule_stateid_recovery(const struct nfs_server *, struct nfs4_state *);
350
331
extern void nfs41_handle_sequence_flag_errors(struct nfs_client *clp, u32 flags);
351
332
extern void nfs41_handle_recall_slot(struct nfs_client *clp);
 
333
extern void nfs41_handle_server_scope(struct nfs_client *,
 
334
                                      struct server_scope **);
352
335
extern void nfs4_put_lock_state(struct nfs4_lock_state *lsp);
353
336
extern int nfs4_set_lock_state(struct nfs4_state *state, struct file_lock *fl);
354
337
extern void nfs4_copy_stateid(nfs4_stateid *, struct nfs4_state *, fl_owner_t, pid_t);
373
356
 
374
357
#else
375
358
 
376
 
#define nfs4_close_state(a, b, c) do { } while (0)
377
 
#define nfs4_close_sync(a, b, c) do { } while (0)
 
359
#define nfs4_close_state(a, b) do { } while (0)
 
360
#define nfs4_close_sync(a, b) do { } while (0)
378
361
 
379
362
#endif /* CONFIG_NFS_V4 */
380
363
#endif /* __LINUX_FS_NFS_NFS4_FS.H */