401 ret=-EFAULT;
402 goto out_up;
403 }
404
405 pos = *ppos;
406 count = len;
407
408 vfs_check_frozen(inode->i_sb, SB_FREEZE_WRITE);
409
410
411 current->backing_dev_info = mapping->backing_dev_info;
412
413 ret = generic_write_checks(filp, &pos, &count, S_ISBLK(inode->i_mode));
414 if (ret)
415 goto out_backing;
416 if (count == 0)
417 goto out_backing;
418
419 ret = file_remove_suid(filp);
420 if (ret)
421 goto out_backing;
422
423 file_update_time(filp);
424
425 ret = __xip_file_write (filp, buf, count, pos, ppos);
426
427 out_backing:
428 current->backing_dev_info = NULL;
429 out_up:
430 mutex_unlock(&inode->i_mutex);
431 return ret;
432}
433EXPORT_SYMBOL_GPL(xip_file_write);
434
435
436
437
438
439
440int
441xip_truncate_page(struct address_space *mapping, loff_t from)