int fso_bufcnt;
};
-#define XATTR_LUSTRE_MDS_LOV_EA "lov"
-
struct lustre_dquot;
struct fsfilt_operations {
struct list_head fs_list;
int (* fs_read_record)(struct file *, void *, int size, loff_t *);
int (* fs_setup)(struct super_block *sb);
int (* fs_get_op_len)(int, struct fsfilt_objinfo *, int);
- int (* fs_quotactl)(struct super_block *sb,
- struct obd_quotactl *oqctl);
int (* fs_quotacheck)(struct super_block *sb,
struct obd_quotactl *oqctl);
__u64 (* fs_get_version) (struct inode *inode);
__u64 (* fs_set_version) (struct inode *inode, __u64 new_version);
+ int (* fs_quotactl)(struct super_block *sb,
+ struct obd_quotactl *oqctl);
int (* fs_quotainfo)(struct lustre_quota_info *lqi, int type,
int cmd);
int (* fs_qids)(struct file *file, struct inode *inode, int type,
struct list_head *list);
+ int (* fs_get_mblk)(struct super_block *sb, int *count,
+ struct inode *inode, int frags);
int (* fs_dquot)(struct lustre_dquot *dquot, int cmd);
lvfs_sbdev_type (* fs_journal_sbdev)(struct super_block *sb);
};
return (lvfs_sbdev_type)0;
}
-#define FSFILT_OP_UNLINK 1
-#define FSFILT_OP_RMDIR 2
-#define FSFILT_OP_RENAME 3
-#define FSFILT_OP_CREATE 4
-#define FSFILT_OP_MKDIR 5
-#define FSFILT_OP_SYMLINK 6
-#define FSFILT_OP_MKNOD 7
-#define FSFILT_OP_SETATTR 8
-#define FSFILT_OP_LINK 9
-#define FSFILT_OP_CANCEL_UNLINK 10
-#define FSFILT_OP_JOIN 11
-#define FSFILT_OP_NOOP 15
+#define FSFILT_OP_UNLINK 1
+#define FSFILT_OP_RMDIR 2
+#define FSFILT_OP_RENAME 3
+#define FSFILT_OP_CREATE 4
+#define FSFILT_OP_MKDIR 5
+#define FSFILT_OP_SYMLINK 6
+#define FSFILT_OP_MKNOD 7
+#define FSFILT_OP_SETATTR 8
+#define FSFILT_OP_LINK 9
+#define FSFILT_OP_CANCEL_UNLINK 10
+#define FSFILT_OP_JOIN 11
+#define FSFILT_OP_NOOP 15
+#define FSFILT_OP_UNLINK_PARTIAL_CHILD 21
+#define FSFILT_OP_UNLINK_PARTIAL_PARENT 22
+#define FSFILT_OP_CREATE_PARTIAL_CHILD 23
#define __fsfilt_check_slow(obd, start, msg) \
do { \
void *parent_handle = oti ? oti->oti_handle : NULL;
void *handle;
- if (obd->obd_fail)
- return ERR_PTR(-EROFS);
-
handle = obd->obd_fsops->fs_start(inode, op, parent_handle, logs);
CDEBUG(D_INFO, "started handle %p (%p)\n", handle, parent_handle);
void *parent_handle = oti ? oti->oti_handle : NULL;
void *handle;
- if (obd->obd_fail)
- return ERR_PTR(-EROFS);
-
handle = obd->obd_fsops->fs_brw_start(objcount, fso, niocount, nb,
parent_handle, logs);
CDEBUG(D_INFO, "started handle %p (%p)\n", handle, parent_handle);
}
static inline int fsfilt_qids(struct obd_device *obd, struct file *file,
- struct inode *inode, int type,
+ struct inode *inode, int type,
struct list_head *list)
{
if (obd->obd_fsops->fs_qids)
return -ENOTSUPP;
}
+static inline int fsfilt_get_mblk(struct obd_device *obd,
+ struct super_block *sb, int *count,
+ struct inode *inode, int frags)
+{
+ if (obd->obd_fsops->fs_get_mblk)
+ return obd->obd_fsops->fs_get_mblk(sb, count, inode, frags);
+ return -ENOTSUPP;
+}
+
static inline int fsfilt_map_inode_pages(struct obd_device *obd,
struct inode *inode,
struct page **page, int pages,
static inline __u64 fsfilt_get_version(struct obd_device *obd,
struct inode *inode)
{
- if (obd->obd_fsops->fs_set_version)
+ if (obd->obd_fsops->fs_get_version)
return obd->obd_fsops->fs_get_version(inode);
return -EOPNOTSUPP;
}