• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/usb/gadget/

Lines Matching defs:curlun

492 #define backing_file_is_open(curlun)	((curlun)->filp != NULL)
623 struct lun *curlun;
649 static void close_backing_file(struct lun *curlun);
1505 struct lun *curlun = fsg->curlun;
1526 curlun->sense_data = SS_INVALID_FIELD_IN_CDB;
1530 if (lba >= curlun->num_sectors) {
1531 curlun->sense_data = SS_LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE;
1553 curlun->file_length - file_offset);
1569 curlun->sense_data =
1571 curlun->sense_data_info = file_offset >> 9;
1572 curlun->info_valid = 1;
1580 nread = vfs_read(curlun->filp,
1583 VLDBG(curlun, "file read %u @ %llu -> %d\n", amount,
1590 LDBG(curlun, "error in file read: %d\n",
1594 LDBG(curlun, "partial file read: %d/%u\n",
1606 curlun->sense_data = SS_UNRECOVERED_READ_ERROR;
1607 curlun->sense_data_info = file_offset >> 9;
1608 curlun->info_valid = 1;
1630 struct lun *curlun = fsg->curlun;
1641 if (curlun->ro) {
1642 curlun->sense_data = SS_WRITE_PROTECTED;
1645 curlun->filp->f_flags &= ~O_SYNC; // Default is not to wait
1659 curlun->sense_data = SS_INVALID_FIELD_IN_CDB;
1663 curlun->filp->f_flags |= O_SYNC;
1665 if (lba >= curlun->num_sectors) {
1666 curlun->sense_data = SS_LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE;
1691 amount = min((loff_t) amount, curlun->file_length -
1700 curlun->sense_data =
1702 curlun->sense_data_info = usb_offset >> 9;
1703 curlun->info_valid = 1;
1744 curlun->sense_data = SS_COMMUNICATION_FAILURE;
1745 curlun->sense_data_info = file_offset >> 9;
1746 curlun->info_valid = 1;
1751 if (curlun->file_length - file_offset < amount) {
1752 LERROR(curlun,
1755 (unsigned long long) curlun->file_length);
1756 amount = curlun->file_length - file_offset;
1761 nwritten = vfs_write(curlun->filp,
1764 VLDBG(curlun, "file write %u @ %llu -> %d\n", amount,
1771 LDBG(curlun, "error in file write: %d\n",
1775 LDBG(curlun, "partial file write: %d/%u\n",
1786 curlun->sense_data = SS_WRITE_ERROR;
1787 curlun->sense_data_info = file_offset >> 9;
1788 curlun->info_valid = 1;
1813 static int fsync_sub(struct lun *curlun)
1815 struct file *filp = curlun->filp;
1819 if (curlun->ro || !filp)
1834 VLDBG(curlun, "fdatasync -> %d\n", rc);
1848 struct lun *curlun = fsg->curlun;
1853 rc = fsync_sub(curlun);
1855 curlun->sense_data = SS_WRITE_ERROR;
1862 static void invalidate_sub(struct lun *curlun)
1864 struct file *filp = curlun->filp;
1869 VLDBG(curlun, "invalidate_inode_pages -> %ld\n", rc);
1874 struct lun *curlun = fsg->curlun;
1886 if (lba >= curlun->num_sectors) {
1887 curlun->sense_data = SS_LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE;
1894 curlun->sense_data = SS_INVALID_FIELD_IN_CDB;
1907 fsync_sub(curlun);
1911 invalidate_sub(curlun);
1926 curlun->file_length - file_offset);
1928 curlun->sense_data =
1930 curlun->sense_data_info = file_offset >> 9;
1931 curlun->info_valid = 1;
1937 nread = vfs_read(curlun->filp,
1940 VLDBG(curlun, "file read %u @ %llu -> %d\n", amount,
1947 LDBG(curlun, "error in file verify: %d\n",
1951 LDBG(curlun, "partial file verify: %d/%u\n",
1956 curlun->sense_data = SS_UNRECOVERED_READ_ERROR;
1957 curlun->sense_data_info = file_offset >> 9;
1958 curlun->info_valid = 1;
1977 if (!fsg->curlun) { // Unsupported LUNs are okay
1999 struct lun *curlun = fsg->curlun;
2020 if (!curlun) { // Unsupported LUNs are okay
2026 sd = curlun->sense_data;
2027 sdinfo = curlun->sense_data_info;
2028 valid = curlun->info_valid << 7;
2029 curlun->sense_data = SS_NO_SENSE;
2030 curlun->sense_data_info = 0;
2031 curlun->info_valid = 0;
2047 struct lun *curlun = fsg->curlun;
2054 curlun->sense_data = SS_INVALID_FIELD_IN_CDB;
2058 put_be32(&buf[0], curlun->num_sectors - 1); // Max logical block
2066 struct lun *curlun = fsg->curlun;
2076 curlun->sense_data = SS_INVALID_FIELD_IN_CDB;
2082 curlun->sense_data = SS_SAVING_PARAMETERS_NOT_SUPPORTED;
2094 buf[2] = (curlun->ro ? 0x80 : 0x00); // WP, DPOFUA
2098 buf[3] = (curlun->ro ? 0x80 : 0x00); // WP, DPOFUA
2129 curlun->sense_data = SS_INVALID_FIELD_IN_CDB;
2144 struct lun *curlun = fsg->curlun;
2148 curlun->sense_data = SS_INVALID_COMMAND;
2159 curlun->sense_data = SS_INVALID_FIELD_IN_CDB;
2166 if (curlun->prevent_medium_removal) {
2167 LDBG(curlun, "unload attempt prevented\n");
2168 curlun->sense_data = SS_MEDIUM_REMOVAL_PREVENTED;
2174 close_backing_file(curlun);
2182 if (!backing_file_is_open(curlun)) {
2183 curlun->sense_data = SS_MEDIUM_NOT_PRESENT;
2194 struct lun *curlun = fsg->curlun;
2198 curlun->sense_data = SS_INVALID_COMMAND;
2204 curlun->sense_data = SS_INVALID_FIELD_IN_CDB;
2208 if (curlun->prevent_medium_removal && !prevent)
2209 fsync_sub(curlun);
2210 curlun->prevent_medium_removal = prevent;
2218 struct lun *curlun = fsg->curlun;
2225 put_be32(&buf[0], curlun->num_sectors); // Number of blocks
2234 struct lun *curlun = fsg->curlun;
2237 curlun->sense_data = SS_INVALID_COMMAND;
2388 (!fsg->curlun || fsg->curlun->sense_data != SS_NO_SENSE)) {
2445 struct lun *curlun = fsg->curlun;
2458 if (curlun) {
2459 sd = curlun->sense_data;
2460 sdinfo = curlun->sense_data_info;
2537 struct lun *curlun;
2610 fsg->curlun = curlun = &fsg->luns[fsg->lun];
2612 curlun->sense_data = SS_NO_SENSE;
2613 curlun->sense_data_info = 0;
2614 curlun->info_valid = 0;
2617 fsg->curlun = curlun = NULL;
2631 if (curlun && curlun->unit_attention_data != SS_NO_SENSE &&
2634 curlun->sense_data = curlun->unit_attention_data;
2635 curlun->unit_attention_data = SS_NO_SENSE;
2643 if (curlun)
2644 curlun->sense_data = SS_INVALID_FIELD_IN_CDB;
2651 if (curlun && !backing_file_is_open(curlun) && needs_medium) {
2652 curlun->sense_data = SS_MEDIUM_NOT_PRESENT;
2852 fsg->curlun->sense_data = SS_INVALID_COMMAND;
3170 struct lun *curlun;
3238 curlun = &fsg->luns[i];
3239 curlun->prevent_medium_removal = 0;
3240 curlun->sense_data = curlun->unit_attention_data =
3242 curlun->sense_data_info = 0;
3243 curlun->info_valid = 0;
3398 static int open_backing_file(struct lun *curlun, const char *filename)
3408 ro = curlun->ro;
3417 LINFO(curlun, "unable to open backing file: %s\n", filename);
3430 LINFO(curlun, "invalid file type: %s\n", filename);
3437 LINFO(curlun, "file not readable: %s\n", filename);
3445 LINFO(curlun, "unable to find file size: %s\n", filename);
3451 LINFO(curlun, "file too small: %s\n", filename);
3457 curlun->ro = ro;
3458 curlun->filp = filp;
3459 curlun->file_length = size;
3460 curlun->num_sectors = num_sectors;
3461 LDBG(curlun, "open backing file: %s\n", filename);
3470 static void close_backing_file(struct lun *curlun)
3472 if (curlun->filp) {
3473 LDBG(curlun, "close backing file\n");
3474 fput(curlun->filp);
3475 curlun->filp = NULL;
3490 struct lun *curlun = dev_to_lun(dev);
3492 return sprintf(buf, "%d\n", curlun->ro);
3497 struct lun *curlun = dev_to_lun(dev);
3503 if (backing_file_is_open(curlun)) { // Get the complete pathname
3504 p = d_path(curlun->filp->f_path.dentry, curlun->filp->f_path.mnt,
3526 struct lun *curlun = dev_to_lun(dev);
3536 if (backing_file_is_open(curlun)) {
3537 LDBG(curlun, "read-only status change prevented\n");
3540 curlun->ro = !!i;
3541 LDBG(curlun, "read-only status set to %d\n", curlun->ro);
3549 struct lun *curlun = dev_to_lun(dev);
3553 if (curlun->prevent_medium_removal && backing_file_is_open(curlun)) {
3554 LDBG(curlun, "eject attempt prevented\n");
3564 if (backing_file_is_open(curlun)) {
3565 close_backing_file(curlun);
3566 curlun->unit_attention_data = SS_MEDIUM_NOT_PRESENT;
3571 rc = open_backing_file(curlun, buf);
3573 curlun->unit_attention_data =
3607 struct lun *curlun;
3615 curlun = &fsg->luns[i];
3616 if (curlun->registered) {
3617 device_remove_file(&curlun->dev, &dev_attr_ro);
3618 device_remove_file(&curlun->dev, &dev_attr_file);
3619 device_unregister(&curlun->dev);
3620 curlun->registered = 0;
3744 struct lun *curlun;
3783 curlun = &fsg->luns[i];
3784 curlun->ro = mod_data.ro[i];
3785 curlun->dev.release = lun_release;
3786 curlun->dev.parent = &gadget->dev;
3787 curlun->dev.driver = &fsg_driver.driver;
3788 dev_set_drvdata(&curlun->dev, fsg);
3789 snprintf(curlun->dev.bus_id, BUS_ID_SIZE,
3792 if ((rc = device_register(&curlun->dev)) != 0) {
3796 if ((rc = device_create_file(&curlun->dev,
3798 (rc = device_create_file(&curlun->dev,
3800 device_unregister(&curlun->dev);
3803 curlun->registered = 1;
3807 if ((rc = open_backing_file(curlun,
3924 curlun = &fsg->luns[i];
3925 if (backing_file_is_open(curlun)) {
3928 p = d_path(curlun->filp->f_path.dentry,
3929 curlun->filp->f_path.mnt,
3934 LINFO(curlun, "ro=%d, file: %s\n",
3935 curlun->ro, (p ? p : "(error)"));