/*
* If the EXT3_FEATURE_COMPAT_EXT_ATTR feature of this file system is
* not set, set it.
-@@ -480,6 +691,101 @@
+@@ -480,6 +691,102 @@
*/
int
ext3_xattr_set_handle(handle_t *handle, struct inode *inode, int name_index,
+ if (err != 0 && err != -ENOENT) {
+ /* not found EA in block */
+ goto finish;
++ } else if (err == 0) {
++ /* found EA in block */
++ where = 1;
++ found = 1;
+ }
-+ /* found EA in block */
-+ where = 1;
-+ found = 1;
+ } else
+ goto finish;
+
+ void (*d_unpin)(struct dentry *, struct vfsmount *, int);
};
-+#define PIN(de,mnt,flag) if (de->d_op && de->d_op->d_pin) \
++#define PIN(de,mnt,flag) if (de && de->d_op && de->d_op->d_pin) \
+ de->d_op->d_pin(de, mnt, flag);
-+#define UNPIN(de,mnt,flag) if (de->d_op && de->d_op->d_unpin) \
++#define UNPIN(de,mnt,flag) if (de && de->d_op && de->d_op->d_unpin) \
+ de->d_op->d_unpin(de, mnt, flag);
+
+
static DECLARE_MUTEX(ptlrpcd_sem);
static int ptlrpcd_users = 0;
+void ptlrpcd_wake(void)
+{
+ struct ptlrpcd_ctl *pc = &ptlrpcd_pc;
+ wake_up(&pc->pc_waitq);
+}
+
void ptlrpcd_add_req(struct ptlrpc_request *req)
{
struct ptlrpcd_ctl *pc = &ptlrpcd_pc;
ptlrpc_set_add_new_req(pc->pc_set, req);
- wake_up(&pc->pc_waitq);
+ ptlrpcd_wake();
}
static int ptlrpcd_check(struct ptlrpcd_ctl *pc)